Je voudrais rendre le port par défaut qui manage.py runserver
écoute sur spécifiable dans un étranger config.ini
. Existe-t-il une solution plus facile que d'analyser l' sys.argv
intérieur manage.py
et d'insérer le port configuré?
L'objectif est de s'exécuter ./manage.py runserver
sans avoir à spécifier l'adresse et le port à chaque fois, mais en lui faisant prendre les arguments du config.ini
.
Réponses:
créez un script bash avec les éléments suivants:
enregistrez-le en tant que runserver dans le même répertoire que manage.py
et exécutez-le comme
la source
call
. Si cette solution fonctionne pour vous, assurez-vous de la marquer comme résolue.supervisor
pour cela maintenant, ce qui le rend encore plus facile à gérer. :-) Mais la vôtre est probablement la solution la plus propre autre que l'écriture d'unrunserver
script dédié .En fait, le moyen le plus simple de changer (uniquement) le port dans le serveur de développement Django est comme:
qui devrait exécuter le serveur de développement sur http://127.0.0.1:7000/
la source
Depuis Django 1.9, la solution la plus simple que j'ai trouvée (basée sur la solution de Quentin Stafford-Fraser) est d'ajouter quelques lignes
manage.py
auxquelles modifier dynamiquement le numéro de port par défaut avant d'appeler larunserver
commande:la source
from django.core.management.commands.runserver import Command as runserver; runserver.default_port = "8080
à votre manage.py. Vous pouvez également modifier l'adresse d'écoute avec:runserver.default_addr
Toutes les commandes suivantes sont possibles pour changer le port lors de l'exécution de django:
la source
Créez une sous-classe
django.core.management.commands.runserver.Command
et écrasez ledefault_port
membre. Enregistrez le fichier en tant que commande de gestion de votre choix, par exemple sous<app-name>/management/commands/runserver.py
:Je charge les paramètres du formulaire de port par défaut ici (qui à son tour lit d'autres fichiers de configuration), mais vous pouvez tout aussi bien le lire directement à partir d'un autre fichier.
la source
runserver.py
. Dois-je l'enregistrer quelque part?runserver
commande. Peut-être avez-vous également une autre application enregistrant également une commande nomméerunserver
. Essayez de renommer votre commande et voyez si elle est reconnue.<app_name>/management/commands/runserver.py
, mais l'original de Djangorunserver
est utilisé. Quand je le renommerun_server.py
, il est reconnu. Je ne vois rien de spécialrunserver
sur la page vers laquelle vous créez un lien.staticfiles
faire exactement ce que vous suggérez . Donc, suivre vos instructions interrompt la diffusion des fichiers statiques en développement. Il est préférable d'importer depuisdjango.contrib.staticfiles.management.commands
.Nous avons créé une nouvelle commande de gestion «runserver» qui est un wrapper fin autour de la commande standard mais qui change le port par défaut. En gros, vous créez
management/commands/runserver.py
et insérez quelque chose comme ceci:la source
Dans Pycharm, vous pouvez simplement ajouter le port aux paramètres
la source
Je suis très en retard à la fête ici, mais si vous utilisez un IDE comme PyCharm, il y a une option dans «Modifier les configurations» sous le menu «Exécuter» (Exécuter> Modifier les configurations) où vous pouvez spécifier un port par défaut. Ceci n'est bien sûr pertinent que si vous déboguez / testez via PyCharm.
la source
Si vous souhaitez modifier les configurations par défaut, procédez comme suit:
Commande de type de terminal ouvert
Maintenant, ouvrez le fichier runserver.py dans l'éditeur nano en tant que superutilisateur
recherchez la variable 'default_port', vous verrez alors le numéro de port par défaut est '8000'. Maintenant, vous pouvez le changer en ce que vous voulez.
Maintenant, quittez et enregistrez le fichier en utilisant "CTRL + X et Y pour enregistrer le fichier"
Remarque: remplacez <2/3> .x par votre version utilisable de python
la source
Créez une variable d'environnement dans votre .bashrc
export RUNSERVER_PORT = 8010
Créer un alias
alias runserver = 'django-admin runserver $ RUNSERVER_PORT'
J'utilise le wrapper zsh et virtualenvs. Je mets l'exportation dans les projets de script de postactivation et de port d'attribution pour chaque projet.
la source
Ceci est un ancien post mais pour ceux qui sont intéressés:
Si vous souhaitez modifier le numéro de port par défaut, lorsque vous exécutez la commande «runserver», vous démarrez avec votre port préféré, procédez comme suit:
DEFAULT_PORT = "8080"
Cela fonctionne avec python 2.7, mais il devrait également fonctionner avec les nouvelles versions de python. Bonne chance
la source
J'étais aux prises avec le même problème et j'ai trouvé une solution. Je suppose que cela peut vous aider. lorsque vous exécutez
python manage.py runserver
, il prendra 127.0.0.1 comme adresse IP par défaut et 8000 comme numéro de port par défaut qui peut être configuré dans votre environnement python. Dans votre paramètre python, allez à<your python env>\Lib\site-packages\django\core\management\commands\runserver.py
et définissez 1.default_port = '<your_port>'
2. trouvez ceci sous la poignée def et définissez
if not options.get('addrport'): self.addr = '0.0.0.0' self.port = self.default_port
Maintenant, si vous exécutez "python manage.py runserver", il fonctionnera par défaut sur "0.0.0.0:
Profitez du codage .....
la source