我有一个脚本,它使用Django ORM功能,以及其他外部库,我想在Django之外运行(即,从命令行执行).
编辑:目前,我可以通过导航到URL来启动它...
如何为此设置环境?
Dan*_*man 40
最简单的方法是将脚本设置为manage.py
子命令.这很容易做到:
from django.core.management.base import NoArgsCommand, make_option
class Command(NoArgsCommand):
help = "Whatever you want to print here"
option_list = NoArgsCommand.option_list + (
make_option('--verbose', action='store_true'),
)
def handle_noargs(self, **options):
... call your script here ...
Run Code Online (Sandbox Code Playgroud)
将它放在一个文件中,在管理/命令/ yourcommand.py下的任何应用程序中(__init__.py
每个文件中都有空文件),现在你可以调用你的脚本了./manage.py yourcommand
.
小智 20
from <Project path> import settings #your project settings file
from django.core.management import setup_environ #environment setup function
setup_environ(settings)
#Rest of your django imports and code go here
Run Code Online (Sandbox Code Playgroud)
zgo*_*oda 13
您只需要可导入的设置并正确设置python路径.在最原始的形式中,这可以通过设置适当的环境变量来完成,例如:
$ DJANGO_SETTINGS_MODULE=myproject.settings PYTHONPATH=$HOME/djangoprojects python myscript.py
Run Code Online (Sandbox Code Playgroud)
还有其他一些方法,比如在一些博客文章settings.configure()
中setup_environ()
称詹姆斯贝内特描述的已经提到的内容.
abe*_*ein 10
使用runscript
从Django的扩展:python manage.py runscript <my_script>
为此,您需要:
pip install django-extensions
scripts
.它可以位于根目录或特定应用程序中.使用空白init文件初始化目录:
touch scripts/__init__.py
将脚本放在此目录中,并包含一个run()
函数.例:
#hello.py
def hello():
return "Hello, World"
def run():
print hello()
Run Code Online (Sandbox Code Playgroud)运行脚本 python manage.py runscript hello
归档时间: |
|
查看次数: |
24663 次 |
最近记录: |