Ich möchte den Standardport, der manage.py runserver
abhört, in einem fremden Bereich spezifizierbar machen config.ini
. Gibt es eine einfachere fix als Parsen sys.argv
innerhalb manage.py
und den konfigurierten Anschluss stecken?
Das Ziel ist es, ausgeführt zu werden, ./manage.py runserver
ohne jedes Mal Adresse und Port angeben zu müssen, aber die Argumente aus dem zu übernehmen config.ini
.
Antworten:
Erstellen Sie ein Bash-Skript mit den folgenden Angaben:
Speichern Sie es als Runserver im selben Verzeichnis wie manage.py
und führen Sie es als
quelle
call
. Wenn diese Lösung für Sie funktioniert, markieren Sie sie bitte als gelöst.supervisor
habe jetzt angefangen, dies zu verwenden, was die Verwaltung noch einfacher macht. :-) Aber deine ist wahrscheinlich die sauberste Lösung, außer ein dediziertesrunserver
Skript zu schreiben .Der einfachste Weg, den (einzigen) Port in der Entwicklung eines Django-Servers zu ändern, ist wie folgt:
Das sollte den Entwicklungsserver unter http://127.0.0.1:7000/ ausführen.
quelle
Ab Django 1.9 besteht die einfachste Lösung, die ich gefunden habe (basierend auf der Lösung von Quentin Stafford-Fraser), darin, einige Zeilen hinzuzufügen, in
manage.py
denen die Standardportnummer dynamisch geändert wird, bevor derrunserver
Befehl aufgerufen wird :quelle
from django.core.management.commands.runserver import Command as runserver; runserver.default_port = "8080
zu Ihrer manage.py. Sie können die Höradresse auch ändern mit:runserver.default_addr
Mit allen folgenden Befehlen können Sie den Port ändern, während Sie django ausführen:
quelle
Erstellen Sie eine Unterklasse
django.core.management.commands.runserver.Command
und überschreiben Sie dasdefault_port
Mitglied. Speichern Sie die Datei als eigenen Verwaltungsbefehl, z. B. unter<app-name>/management/commands/runserver.py
:Ich lade hier die Standardeinstellungen für das Portformular (die wiederum andere Konfigurationsdateien lesen), aber Sie können sie genauso gut direkt aus einer anderen Datei lesen.
quelle
runserver.py
. Soll ich es irgendwo registrieren?runserver
Befehl abgelegt werden soll . Auch haben Sie vielleicht eine andere App auch einen Befehl namens Registrierungrunserver
. Versuchen Sie, Ihren Befehl umzubenennen, und prüfen Sie, ob er erkannt wird.<app_name>/management/commands/runserver.py
, aber dann wird Djangos Originalrunserver
verwendet. Wenn ich es umbenenne,run_server.py
wird es erkannt. Ich seherunserver
auf der Seite, auf die Sie verlinken, nichts Besonderes .staticfiles
macht genau das, was Sie vorschlagen . Wenn Sie also Ihren Anweisungen folgen, wird die Bereitstellung statischer Dateien in der Entwicklung unterbrochen. Es ist am besten, aus zu importierendjango.contrib.staticfiles.management.commands
.Wir haben einen neuen 'runserver'-Verwaltungsbefehl erstellt, der einen dünnen Wrapper um den Standardbefehl darstellt, aber den Standardport ändert. Sie erstellen ungefähr so
management/commands/runserver.py
etwas:quelle
In Pycharm können Sie den Port einfach zu den Parametern hinzufügen
quelle
Ich bin sehr spät zur Party hier, aber wenn Sie eine IDE wie PyCharm verwenden, gibt es unter "Konfigurationen bearbeiten" im Menü "Ausführen" (Ausführen> Konfigurationen bearbeiten) eine Option, mit der Sie einen Standardport angeben können. Dies ist natürlich nur relevant, wenn Sie über PyCharm debuggen / testen.
quelle
Wenn Sie die Standardkonfigurationen ändern möchten, gehen Sie folgendermaßen vor:
Öffnen Sie den Befehl terminal type
Öffnen Sie nun die Datei runserver.py im Nano-Editor als Superuser
Suchen Sie die Variable 'default_port', dann sehen Sie, dass die Standardportnummer '8000' ist. Jetzt können Sie es nach Belieben ändern.
Beenden Sie die Datei und speichern Sie sie mit "STRG + X und Y, um die Datei zu speichern".
Hinweis: Ersetzen Sie <2/3> .x durch Ihre verwendbare Python-Version
quelle
Erstellen Sie eine Umgebungsvariable in Ihrer .bashrc
export RUNSERVER_PORT = 8010
Alias erstellen
alias runserver = 'django-admin runserver $ RUNSERVER_PORT'
Ich benutze zsh und virtualenvs wrapper. Ich habe den Export in Projekte gesetzt, um das Skript zu aktivieren und den Port für jedes Projekt zuzuweisen.
quelle
Dies ist ein alter Beitrag, aber für diejenigen, die interessiert sind:
Wenn Sie die Standardportnummer ändern möchten, starten Sie beim Ausführen des Befehls "runserver" mit Ihrem bevorzugten Port:
DEFAULT_PORT = "8080"
Es funktioniert mit Python 2.7, sollte aber auch mit neueren Versionen von Python funktionieren. Viel Glück
quelle
Ich hatte mit dem gleichen Problem zu kämpfen und fand eine Lösung. Ich denke, es kann dir helfen. Wenn Sie ausführen
python manage.py runserver
, wird 127.0.0.1 als Standard-IP-Adresse und 8000 als Standard-Portnummer verwendet, die in Ihrer Python-Umgebung konfiguriert werden kann. Gehen Sie in Ihrer Python-Einstellung zu<your python env>\Lib\site-packages\django\core\management\commands\runserver.py
und setzen Sie 1.default_port = '<your_port>'
2. Finden Sie dies unter def handle und set
if not options.get('addrport'): self.addr = '0.0.0.0' self.port = self.default_port
Wenn Sie nun "python manage.py runserver" ausführen, wird es standardmäßig unter "0.0.0.0:" ausgeführt.
Viel Spaß beim Codieren .....
quelle