注册

在django中,应用可以通过manage.py注册自定义活动(own actions),注意这里是注册的主体是应用,这也是我踩坑的地方。

在django中你需要自定义命令的应用文件夹下面新建如下结构的文件夹<app>/management/commands

正确的目录结构如下

interview/
    __init__.py
    models.py
    management/
        commands/
            custom_command.py
    tests.py
    views.py

编写自定义命令

实现最基础的自定义命令

custom_command.py的要求只有一个,必须定义Command类,继承自BaseCommand或其子类。

from django.core.management import BaseCommand


class Command(BaseCommand):
    def handle(self, *args, **options):
        self.stdout.write('custom command done')

运行结果

接受参数

from django.core.management import BaseCommand


class Command(BaseCommand):
    def add_arguments(self, parser):
        parser.add_argument('--str', type=str)

    def handle(self, *args, **options):
        str = options['path']
        self.stdout.write('receive {}'.format(str))

运行结果

参考资料

Django文档

Last modification:December 21st, 2020 at 09:59 pm