编写自定义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

相关文章
相关标签/搜索