2017-06-22 5 views

Répondre

4

essayez ceci:

créer un fichier sous yourapp/management/commands/yourcommand.py avec le contenu suivant:

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 

vous pouvez appeler votre commande avec

python manage.py yourcommand --url http://example.com 

et:

python manage.py --help 

ou

python manage.py yourcommand --help 

montrera la description de votre commande et l'argument.

si vous ne voulez pas nommer l'argument (la --url partie), comme dans votre exemple, juste de lire l'url ('s) sous forme args:

def handle(self, *args, **kwargs): 
    for url in args: 
     # process the url 

espérons que cette aide.

+0

Bon exemple. Mais la question ne concerne qu'une URL. Alors déposez le '-' devant add_argument et cela fonctionnera comme par magie (bien, merci à [argparse] (https://docs.python.org/3/library/argparse.html#name-or-flags)). – Melvyn

+0

Merci! Cela aide beaucoup! Mais je ne comprends pas la dernière partie (sans --url) - ce qui devrait être après: pour url dans les arguments: –

+0

@AlekSZ, c'est à vous de décider, là vous traitez l'URL donnée comme argument. –