我需要从Django shell中执行一个Python脚本。我试着:
./manage.py shell << my_script.py
但这并没有起作用。它只是在等我写点什么。
我需要从Django shell中执行一个Python脚本。我试着:
./manage.py shell << my_script.py
但这并没有起作用。它只是在等我写点什么。
当前回答
import os, sys, django
os.environ["DJANGO_SETTINGS_MODULE"] = "settings"
sys.path.insert(0, os.getcwd())
django.setup()
其他回答
如果你的脚本中没有很多命令,使用它:
manage.py shell --command="import django; print(django.__version__)"
Django文档在manage.py shell上
你可以使用DJANGO_SETTINGS_MODULE环境变量来运行脚本。这就是设置Django-shell环境所需的全部内容。
这在Django >= 1.4中是有效的
import os, sys, django
os.environ["DJANGO_SETTINGS_MODULE"] = "settings"
sys.path.insert(0, os.getcwd())
django.setup()
将globals().update(locals())放在import语句之后
注意,这个方法在django的最新版本中已经被弃用了!(> 1.3)
另一个答案是,您可以将它添加到my_script.py的顶部
from django.core.management import setup_environ
import settings
setup_environ(settings)
然后用python在settings。py目录下执行my_script.py,但这有点棘手。
$ python my_script.py