有个人想要通过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才明白,不知道有没有办法在这方面统一一下呢。。