編寫自定義django-admin命令

  Django爲項目中每個應用下的management/commands目錄中名字沒有如下劃線開始的Python模塊都註冊了一個manage.py命令,咱們能夠利用這點來自定製一個命令(好比運行該命令可清空數據庫什麼的)python

相應的文件目錄結構以下:數據庫

app01/
    __init__.py
    models.py
    management/
        __init__.py
        commands/
            __init__.py
            _private.py#下劃線開頭的不能夠用做自定製命令的編寫文件
            xxx.py#不如下劃線開頭的就能夠
    tests.py
    views.py

  如上圖所示,_private.py將不能夠做爲一個管理命令使用,而xxx.py則能夠。咱們想要自定製命令,需本身在指定app目錄下建立management包,management包內建立commands包,commands包心裏間本身想要寫入自定製命令的文件便可。django

 

  xxx.py模塊想要寫自定製命令的話,必須定義一個Command類並繼承Basecommand或其子類。app

from django.core.management.base import BaseCommand, CommandError
from app01.models import Poll
 
class Command(BaseCommand):#必須繼承
    
    def handle(self, *args, **options):#必須實現的方法 ,該方法即自定義命令執行的內容
       print("Hello World")

 

  完成以上配置後,鍵入命令python manage.py xxx就能夠執行打印Hello World的操做啦~spa

相關文章
相關標籤/搜索