[PYTHON] Ajouter des paramètres aux commandes personnalisées de Django

introduction

Inutile de dire aux experts de Django, Django facilite la création de commandes personnalisées!

$ python manage.py hoge

C'est sous la forme de. C'est la partie comme runserver, migrate, make migrations, etc. Cette fois, je l'ai implémenté parce que je voulais ajouter un paramètre après hoge, alors partagez-le avec un mémo

image


$ python manage.py hoge 1 2

environnement

la mise en oeuvre

$ django-admin.py startapp app

Je vais l'implémenter en supposant que j'ai créé une application nommée ʻapp`

app/
  ├── admin.py
  ├── apps.py
  ├── models.py
  ├── tests.py
  └── views.py

Je pense qu'il a une structure comme celle-là. Si non changé

$ mkdir -p app/management/commands
$ cd app/management/commands
$ touch __init__.py
$ touch plus.py #Tout nom «plus» sera le nom de la commande personnalisée

hoge.py


from django.core.management.base import BaseCommand, CommandError


class Command(BaseCommand):
    args = '<param_1 param_2 ...>'
    help = 'Une commande pour afficher le total des paramètres'

    def add_arguments(self, parser):
        parser.add_argument('parameters', nargs='+', type=int)

    def handle(self, *args, **options):
        print(sum(options['parameters']))

Ce qui précède est approprié pour le moment, c'est donc une commande qui ajoute simplement des paramètres et les affiche.

$ python manage.py plus 1 2 3 4
10

Ça devrait ressembler à ça!

Recommended Posts

Ajouter des paramètres aux commandes personnalisées de Django
Comment ajouter des options au serveur de runtime manage.py de Django
Ajouter une convolution à MNIST
Commandes Linux à retenir
Ajouter / supprimer un noyau à JupyterLab
Ajouter un dictionnaire à MeCab
Alternative à la commande dumpdata de django
Ajouter un numéro de page au PDF
Comment faire fonctionner GeoIp2 de Django
Paramètres du noyau souvent modifiés
Ajouter un dictionnaire utilisateur à MeCab