manage.py是在我們創建Django項目的時候就自動生成在根目錄下的一個命令行工具,它可以執行一些簡單的命令,其功能是將Django project放到sys.path目錄中,同時設置DJANGO_SETTINGS_MODULE環境變量為當前project的setting.py文件。
manage.py的代碼是這樣的:
#!/usr/bin/env python import os import sys if __name__ == "__main__": os.environ.setdefault("DJANGO_SETTINGS_MODULE", "adl_lrs.settings") from django.core.management import execute_from_command_line execute_from_command_line(sys.argv)excute_from_command_line()函數會根據命令行參數解析出命令的名稱,根據命令名稱調用相應的Command執行命令。Command位于各個管理模塊的commands模塊下面。
所以要自定義manage命令,只需要在app下management目錄commands目錄下建立目標文件。
需要注意的是,不是所有的.py文件都會被識別為命令的,需引用了BaseCommand的才能被正確識別,而且我們的命令類要繼承于BaseCommand它才可以。
示例代碼:
from django.core.management.base import BaseCommand,CommandError import datetime import pytz class Command(BaseCommand): def handle(self, *args, **options): now=datetime.datetime.now() now=now.replace(hour=0).replace(minute=0).replace(second=0).replace(microsecond=0).replace(tzinfo=pytz.timezone('UTC')) br1=datetime.datetime(2016,6,29) br1=br1.replace(hour=0).replace(minute=0).replace(second=0).replace(microsecond=0).replace(tzinfo=pytz.timezone('UTC')) br2=now print br1,br2 以上就是本文關于Django自定義manage命令實例代碼的全部內容,希望對大家有所幫助。感興趣的朋友可以繼續參閱本站其他相關專題,如有不足之處,歡迎留言指出。感謝朋友們對本站的支持!
新聞熱點
疑難解答