我需要从Django shell中执行一个Python脚本。我试着:

./manage.py shell << my_script.py

但这并没有起作用。它只是在等我写点什么。


当前回答

你可以使用DJANGO_SETTINGS_MODULE环境变量来运行脚本。这就是设置Django-shell环境所需的全部内容。

这在Django >= 1.4中是有效的

其他回答

你可以简单地运行:

Python manage.py shell < your_script.py

它应该做到这一点!

我刚刚发现一个有趣的东西是Django Scripts,它允许你用python manage.py runscript foobar来编写脚本。关于实现和结构的更多详细信息可以在这里找到,http://django-extensions.readthedocs.org/en/latest/index.html

我迟到了,但我希望我的回答能帮助到别人: 你可以在你的Python脚本中这样做:

import sys, os
sys.path.append('/path/to/your/django/app')
os.environ['DJANGO_SETTINGS_MODULE'] = 'settings'
from django.conf import settings

你的其他东西在这里....

我迟到了,但我希望我的回答能帮助到别人:你可以在你的Python脚本中这样做:

步骤1:导入

import mysite.asgi

step2:需要执行一个Python脚本,只需输入:

python test.py

test.py文件是这样的:

import mysite.asgi

from polls.models import GMD_TABLE
print ( [obj.gt_GMD_name for obj in GMD_TABLE.objects.all()] )

最后:结果将是:

['ISHWARDI', 'JHENAIDHA', 'HVDC CIRCLE']

GMD_TABLE的值['ISHWARDI', 'JHENAIDHA', 'HVDC CIRCLE']在哪里

如果你想执行启动脚本(例如,导入一些django模型来与它们交互工作),并保持在django shell中:

PYTHONSTARTUP=my_script.py python manage.py shell