有个人想要通过Python的交互式Shell导入Django来将物品保存到数据库中的故事

背景 – 底蕴

我正在用Django制作应用。

    • Pythonスクリプトを実行してクローリングして取ってきたデータを

 

    • pythonのスクリプトの中で整形して

 

    django のDBに保存して利用したい

这是我的目标,通过Python访问Django并完成与数据库的交互,同时实现自己想要的功能。

版本等

    • Django 1.9.2

 

    • python 2.7.10

 

    Mac OS X

去主编那里吧

我的想法就像開始時提到的一樣,從Python的互動式shell中導入Django應用程序,然後進行相關修改。

import os,sys,django

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "you_apps_name.settings") # *1

sys.path.append(r'/Users/kanuchi34/Projects/python/dj/quotes') # *2
 
django.setup() # *3

逐一进行注释

1. *1 註解

我还没有详细调查这是在做什么,但总的来说,它似乎提供了使用DJANGO所需的基本信息。

听说实际上有几种执行Python代码的方法,其中之一是

manage.py をコードの実行と一緒に呼び出す

有一种方法,我想,“这个人肯定在替代各种设置”,所以我决定偷偷瞧了下,结果发现了这段 *1 的代码。

我认为,换句话说,Django是在Python中调用DJANGO_SETTING_MODULE,以便能够使用Python和Django。

注解 *2

这段代码可以穿着不错,但也可以省略。好像是为了将Python路径通往app目录以下的环境而需要的。

如果在app目录中放置Python脚本并执行,即使没有也没有问题。

此备注来源为第三项

django.setup()

我一直忘了调用这个,花了大约一个小时来搜索。我想这是用于设置Django环境的。

如果不调用这个,就会出现类似于 AppDirectryIsntReady 的错误消息,无法继续前进。

我正沉迷于它

这篇文章里面提到的注释1的地方,大家随意填写了your_apps_name*,我完全不明白这是什么意思(应该是初学者常遇到的情况)。

1. config.local
2. myproj.settings
3. myapp.settings
4. local
5. config

最后我看了manage.py才明白,不知道有没有办法在这方面统一一下呢。。

bannerAds