如何在Django中编写一个自定义管理命令,该命令将URL作为参数?

Ale*_* SZ 7 python django command

我正在学习在Django中编写自定义管理命令.我想写一个命令,它将给定的URL作为参数.就像是:

python manage.py command http://example.com
Run Code Online (Sandbox Code Playgroud)

我已经阅读了一份文档,但我不清楚如何做到这一点.但是我可以写一个命令'Hello World!';)

alf*_*kim 21

试试这个:

yourapp/management/commands/yourcommand.py使用以下内容创建文件:

from django.core.management.base import BaseCommand

class Command(BaseCommand):
    help = 'A description of your command'

    def add_arguments(self, parser):
        parser.add_argument(
            '--url', dest='url', required=True,
            help='the url to process',
        )

    def handle(self, *args, **options):
        url = options['url']
        # process the url
Run Code Online (Sandbox Code Playgroud)

然后你可以用你的命令

python manage.py yourcommand --url http://example.com
Run Code Online (Sandbox Code Playgroud)

并且:

python manage.py --help
Run Code Online (Sandbox Code Playgroud)

要么

python manage.py yourcommand --help
Run Code Online (Sandbox Code Playgroud)

将显示您的命令和参数的描述.

如果您不想命名参数(--url部分),就像在您的示例中一样,只需阅读url('s)表单args:

def handle(self, *args, **kwargs):
    for url in args:
        # process the url
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助.