我需要从Django shell中执行一个Python脚本。我试着:
./manage.py shell << my_script.py
但这并没有起作用。它只是在等我写点什么。
我需要从Django shell中执行一个Python脚本。我试着:
./manage.py shell << my_script.py
但这并没有起作用。它只是在等我写点什么。
当前回答
注意,这个方法在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
其他回答
将globals().update(locals())放在import语句之后
其实很简单,只要你打开django shell Python manage.py shell然后简单的写import test来导入test.py
# test.py
def x():
print('hello');
现在您可以执行该文件中的命令
test.x() // will print hello
我迟到了,但我希望我的回答能帮助到别人:你可以在你的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']在哪里
<<部分是错误的,用<代替:
$ ./manage.py shell < myscript.py
你还可以:
$ ./manage.py shell
...
>>> execfile('myscript.py')
对于python3,您需要使用
>>> exec(open('myscript.py').read())
Django.setup()似乎不能正常工作。
似乎也不是必须的。
仅这一点就奏效了。
import os, django, glob, sys, shelve
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "myProject.settings")