我需要从Django shell中执行一个Python脚本。我试着:
./manage.py shell << my_script.py
但这并没有起作用。它只是在等我写点什么。
我需要从Django shell中执行一个Python脚本。我试着:
./manage.py shell << my_script.py
但这并没有起作用。它只是在等我写点什么。
当前回答
<<部分是错误的,用<代替:
$ ./manage.py shell < myscript.py
你还可以:
$ ./manage.py shell
...
>>> execfile('myscript.py')
对于python3,您需要使用
>>> exec(open('myscript.py').read())
其他回答
@AtulVarma在不工作的接受答案下提供了一个非常有用的评论:
echo 'import myscript' | python manage.py shell
首先检查你的文件。
py manage.py
如果显示您的文件
[contracts]
category_load
现在您可以通过输入powershell(terminal)来运行.py文件
py manage.py category_load
Django.setup()似乎不能正常工作。
似乎也不是必须的。
仅这一点就奏效了。
import os, django, glob, sys, shelve
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "myProject.settings")
将globals().update(locals())放在import语句之后
如果你的脚本中没有很多命令,使用它:
manage.py shell --command="import django; print(django.__version__)"
Django文档在manage.py shell上