Skip to main content
 首页 » 编程设计

python之"Rake"或我在 Django 中的海关任务

2024年08月25日28qq号

在 Rails 中,我可以为 rake 创建一个自定义作业,它可以做任何我想做的事,然后将其作为“rake my_task”运行。在 Django 中有什么方法可以做到这一点?

特别是,我需要创建这样一个作业,它以自定义格式读取我自己的数据文件,以特殊方式处理数据并将其插入数据库。我将多次运行它,而不是一次。为此,我创建了一个纯 python 脚本并运行了它,但出现了错误

django.core.exceptions.ImproperlyConfigured: Requested setting DEFAULT_INDEX_TABLESPACE, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings. 

所以 python 脚本不起作用,必须有一种 django 方式来做到这一点。

请您参考如下方法:

“Django 方式”是创建一个 custom command .
如果你想创建一个外部 python 脚本,那么还有一种方法可以做到这一点,解释了 in this stack overflow answer (编辑:这对于 django 1.7 实际上已经过时了)以及如何创建自定义命令的示例。如果您使用的是最新版本的 django,我推荐使用 django 文档。

有关相关主题,请查看 fabric .

编辑:

对于 django >= 1.7 独立脚本:

import os 
import django 
from myapp import models 
 
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "myapp.settings") 
django.setup() 
 
print models.MyModel.objects.get(pk=1)