我想编写一个使用 Django 应用程序模型与我的数据库交互的脚本。但是,我希望能够从命令行或通过 cron 运行此脚本。我需要导入什么才能允许这样做?
Corey
问问题
9654 次
3 回答
15
您需要设置 Django 环境变量。这些告诉 Python 你的项目在哪里,以及设置模块的名称是什么(设置模块中的项目名称是可选的):
import os
os.environ['PYTHONPATH'] = '/path/to/myproject'
os.environ['DJANGO_SETTINGS_MODULE'] = 'myproject.settings'
现在您应该能够访问模型:
from myproject.models import MyModel
all_my_models = MyModel.objects.all()
于 2008-12-20T08:18:44.153 回答
13
首选方法应该是添加自定义命令,然后像任何其他django-admin
(不要与django.contrib.admin
)命令一样运行它:
./manage.py mycustomcommand --customarg
仅当自定义命令不可行时才应使用设置 DJANGO_SETTINGS_MODULE。
于 2008-12-20T12:06:39.667 回答
5
根据您的具体需求,django-command-extensions可能会为您节省一些时间。要按原样运行任何脚本而不弄乱环境变量,只需键入:
./manage.py runscript path/to/my/script.py
django-command-extensions 还具有用于将脚本自动化为 cron 作业的命令,这是您提到的您想做的事情。
如果您是一个更具体的人,您可以查看这篇非常详细的帖子,其中概述了如何制作“独立”django 脚本以从 cron 作业等运行。
于 2008-12-20T08:39:53.360 回答