[PYTHON] Comment ajouter des options au serveur de runtime manage.py de Django

Ce que j'ai essayé de faire

./manage.py runserver (--option)← Ajoutez des options ici

-Je souhaite ajouter un nouveau traitement tout en conservant l'opération existante dans runserver

Commande de remplacement

nom de l'application/management/commands/runserver.py



from django.contrib.staticfiles.management.commands.runserver import Command as RunCommand

class Command(RunCommand):
       
       help = "Commande elle-même(runserver)Explication etc."

       def add_arguments(self, parser):
           super().add_arguments(parser)
        
           parser.add_argument(
            'nom de l'option',    help='--Déclaration à côté de l'option à l'aide'
        )
      
      def handle(self, *args, **options):

          #Traitez ici

          super().handle(*args, **options)

-Dans l'argument de * parser.add_argument *, vous pouvez définir si l'option de commande à créer nécessite un argument. ・ Il existe d'autres éléments qui peuvent être définis avec des arguments

Elle n'est pas reconnue même si je tape une commande (elle n'apparaît pas dans --help)

Solution

-Il semble que l'application créée ici doit être supérieure à l'application remplacée par INSTALLED_APPS dans les paramètres. (Voir [ici] pour plus de détails (https://docs.djangoproject.com/en/2.2/howto/custom-management-commands/#overriding-commands))

INSTALLED_APPS = [
    'app', #Changement
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
]

Sortit de

・ Cette fois, ajoutez avec --exemple


 ./manage.py runserver --help
usage: manage.py runserver [-h] [--ipv6] [--nothreading] [--noreload]
                           [--nostatic] [--insecure] [--example] [--version]
                           [-v {0,1,2,3}] [--settings SETTINGS]
                           [--pythonpath PYTHONPATH] [--traceback]
                           [--no-color] [--force-color]
                           [addrport]

Starts a lightweight Web server for development and also serves static files.

positional arguments:
  addrport              Optional port number, or ipaddr:port

optional arguments:
  -h, --help            show this help message and exit
  --ipv6, -6            Tells Django to use an IPv6 address.
  --nothreading         Tells Django to NOT use threading.
  --noreload            Tells Django to NOT use the auto-reloader.
  --nostatic            Tells Django to NOT automatically serve static files
                        at STATIC_URL.
  --insecure            Allows serving static files even if DEBUG is False.
  --example             #C'est l'option ajoutée cette fois
  --version             show program's version number and exit
  -v {0,1,2,3}, --verbosity {0,1,2,3}
                        Verbosity level; 0=minimal output, 1=normal output,
                        2=verbose output, 3=very verbose output
  --settings SETTINGS   The Python path to a settings module, e.g.
                        "myproject.settings.main". If this isn't provided, the
                        DJANGO_SETTINGS_MODULE environment variable will be
                        used.
  --pythonpath PYTHONPATH
                        A directory to add to the Python path, e.g.
                        "/home/djangoprojects/myproject".
  --traceback           Raise on CommandError exceptions
  --no-color            Don't colorize the command output.
  --force-color         Force colorization of the command output.

Recommended Posts

Comment ajouter des options au serveur de runtime manage.py de Django
[Python] [Django] Comment utiliser le champ de choix et comment ajouter des options
Comment faire fonctionner GeoIp2 de Django
Comment ajouter sudo lors de l'exécution du débogage
Ajouter des paramètres aux commandes personnalisées de Django
Comment ajouter un volume AWS EBS
Comment ajouter un package avec PyCharm
Comment utiliser ManyToManyField avec l'administrateur de Django
Comment ajouter un module python à l'environnement anaconda
Comment afficher les images dans l'administration de Django
Comment ajouter un chemin de recherche de module Python
Comment ajouter Anaconda Powershell Prompt au terminal Windows?
[ESXi (vCenter)] Comment ajouter une carte réseau pour CentOS 7.3
Comment spécifier un schéma dans les paramètres de la base de données Django
Comment ajouter de l'aide à HDA (avec bonus de script Python)
Comment obtenir un utilisateur connecté avec les forms.py de Django
La solution de contournement pour le modèle de Django n'existe pas
Comment utiliser la clause exist dans l'ensemble de requêtes Django
Comment ajouter des numéros de page à un fichier PDF (en Python)
[Analyse morphologique] Comment ajouter un nouveau dictionnaire à Mecab
Comment ajouter une barre de couleur dans le graphique à barres de matplotlib
Comment utiliser Python-shell
Remarques sur l'utilisation de tf.data
Comment utiliser virtualenv
Comment utiliser Seaboan
Comment utiliser le shogun
Comment utiliser Pandas 2
Comment lire PyPI
Comment installer pip
Comment utiliser Virtualenv
Comment utiliser numpy.vectorize
Comment mettre à jour easy_install
Comment installer Archlinux
Comment utiliser pytest_report_header
Comment redémarrer gunicorn
Comment installer python
Comment héberger virtuel
Comment déboguer le sélénium
Comment utiliser partiel
Comment utiliser Bio.Phylo
Comment lire JSON
Comment utiliser SymPy
Comment utiliser x-means
Comment mettre à jour Spyder
Comment utiliser IPython
Comment installer BayesOpt
Comment utiliser virtualenv
Comment utiliser Matplotlib
Comment utiliser numpy
Comment utiliser TokyoTechFes2015
Comment utiliser venv
Comment utiliser le dictionnaire {}
Comment utiliser Pyenv
Comment faire pousser des fichiers dot
Comment utiliser la liste []
Comment utiliser python-kabusapi
"Comment compter Fukashigi"
Comment installer Nbextensions
Comment utiliser OptParse
Comment utiliser le retour