【发布时间】:2017-11-25 19:16:36
【问题描述】:
我正在学习在 Django 中编写自定义管理命令。我想编写一个将给定 URL 作为参数的命令。比如:
python manage.py command http://example.com
我已阅读文档,但我不清楚如何执行此操作。 但是我可以写一个命令说'Hello World!';)
【问题讨论】:
我正在学习在 Django 中编写自定义管理命令。我想编写一个将给定 URL 作为参数的命令。比如:
python manage.py command http://example.com
我已阅读文档,但我不清楚如何执行此操作。 但是我可以写一个命令说'Hello World!';)
【问题讨论】:
试试这个:
在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
然后你可以调用你的命令
python manage.py yourcommand --url http://example.com
或者:
python manage.py --help
或
python manage.py yourcommand --help
将显示您的命令和参数的描述。
如果您不想命名参数(--url 部分),就像在您的示例中一样,只需阅读 url('s) 表单 args:
def handle(self, *args, **kwargs):
for url in args:
# process the url
希望这会有所帮助。
【讨论】: