簡體   English   中英

“ Rake”或我在Django中的海關任務

[英]“Rake” or my customs tasks in Django

在Rails中,我可以為rake創建一個自定義作業,該作業可以執行我想做的任何事情,然后將其作為“ rake my_task”運行。 在Django中有什么方法?

特別是,我需要創建一個作業,以自定義格式讀取我自己的數據文件,以特殊方式處理數據,然后將其插入db。 而且我將多次運行它,而不僅僅是一次。 為此,我創建了一個純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方式”將是創建自定義命令
如果您想創建一個外部python腳本,那么還有一個方法可以在此堆棧溢出答案中進行解釋(編輯:對於django 1.7,這實際上已經過時了),以及有關如何創建自定義命令的示例。 我建議使用django文檔,但是,如果您使用的是最新版本的django。

在相關主題上,檢查面料

編輯:

對於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)

有兩種方法可以做到

1-您可以編寫要由manage.py調用的自定義管理命令: https : //docs.djangoproject.com/en/1.8/howto/custom-management-commands/

2-python世界中的rake等效項是pyinvoke: https : //github.com/pyinvoke/invoke ,它是Fabric的繼承者,它從rake本身獲得了一些設計靈感。

使用調用時,如果需要設置Django環境,請使用此https://docs.djangoproject.com/en/dev/ref/applications/#django.setup

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM