[英]“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.