webentwicklung-frage-antwort-db.com.de

django Standard-Runserver-Port ändern

Ich möchte den Standardport, den manage.py runserver Abhört, in einem fremden config.ini Spezifizierbar machen. Gibt es eine einfachere Lösung, als sys.argv In manage.py Zu analysieren und den konfigurierten Port einzufügen?

Das Ziel ist es, ./manage.py runserver Auszuführen, ohne jedes Mal Adresse und Port angeben zu müssen, aber die Argumente aus config.ini Zu übernehmen.

91
jonny

erstellen Sie ein Bash-Skript mit folgenden Elementen:

#!/bin/bash
exec ./manage.py runserver 0.0.0.0:<your_port>

speichern Sie es als Runserver in demselben Verzeichnis wie manage.py

chmod +x runserver

und starte es als

./runserver
138
Pablo Albornoz

Tatsächlich ist der einfachste Weg, den (einzigen) Port in der Entwicklung zu ändern Django Server ist wie folgt:

python manage.py runserver 7000

das sollte auf dem Entwicklungsserver laufen http://127.0.0.1:7000/

71
Qback

Ab Django 1.9, die einfachste Lösung, die ich gefunden habe (basierend auf der Lösung von Quentin Stafford-Fraser), besteht darin, ein paar Zeilen zu manage.py Hinzuzufügen, um die Standardportnummer zuvor dynamisch zu ändern Aufrufen des Befehls runserver:

if __== "__main__":
    os.environ.setdefault("Django_SETTINGS_MODULE", "project.settings.dev")

    import Django
    Django.setup()

    # Override default port for `runserver` command
    from Django.core.management.commands.runserver import Command as runserver
    runserver.default_port = "8080"

    from Django.core.management import execute_from_command_line

    execute_from_command_line(sys.argv)
35
BillyBBone

Alle folgenden Befehle sind möglich, um den Port zu ändern, während Django ausgeführt wird:

python manage.py runserver 127.0.0.1:7000

python manage.py runserver 7000

python manage.py runserver 0:7000

Erstelle eine Unterklasse von Django.core.management.commands.runserver.Command und überschreibe das default_port Mitglied. Speichern Sie die Datei als eigenen Verwaltungsbefehl, z. unter <app-name>/management/commands/runserver.py:

from Django.conf import settings
from Django.core.management.commands import runserver

class Command(runserver.Command):
    default_port = settings.RUNSERVER_PORT

Ich lade hier die Standardeinstellungen für das Portformular (das wiederum andere Konfigurationsdateien liest), aber Sie können es genauso gut direkt aus einer anderen Datei lesen.

8
Feuermurmel

Wir haben einen neuen 'runserver'-Verwaltungsbefehl erstellt, der eine dünne Hülle um den Standard-Port darstellt, aber den Standard-Port ändert. Grob erstellen Sie management/commands/runserver.py und füge so etwas ein:

# Override the value of the constant coded into Django...
import Django.core.management.commands.runserver as runserver
runserver.DEFAULT_PORT="8001"

# ...print out a warning...
# (This gets output twice because runserver fires up two threads (one for autoreload).
#  We're living with it for now :-)
import os
dir_path = os.path.splitext(os.path.relpath(__file__))[0]
python_path = dir_path.replace(os.sep, ".")
print "Using %s with default port %s" % (python_path, runserver.DEFAULT_PORT)

# ...and then just import its standard Command class.
# Then manage.py runserver behaves normally in all other regards.
from Django.core.management.commands.runserver import Command

In Pycharm können Sie den Port einfach zu den Parametern hinzufügen

enter image description here

1
chaggy

Ich bin sehr spät zur Party hier, aber wenn Sie ein IDE wie PyCharm verwenden, gibt es eine Option in "Konfigurationen bearbeiten" unter dem Menü "Ausführen" (Ausführen> Konfigurationen bearbeiten), wo Sie Dies ist natürlich nur relevant, wenn Sie über PyCharm debuggen/testen.

1
Smitty
  1. Erstellen Sie eine Umgebungsvariable in Ihrem .bashrc

    export RUNSERVER_PORT = 8010

  2. Erstellen Sie einen Alias

    alias runserver = 'Django-admin runserver $ RUNSERVER_PORT'

Ich benutze zsh und virtualenvs wrapper. Ich habe den Export in Projekte nach dem Aktivieren des Skripts und dem Zuweisen des Ports für jedes Projekt vorgenommen.

workon someproject
runserver
0
Pavel1114

Wenn Sie die Standardkonfigurationen ändern möchten, gehen Sie folgendermaßen vor:

  1. Befehl zum Öffnen des Terminaltyps

     $ /usr/local/lib/python<2/3>.x/dist-packages/Django/core/management/commands
    
  2. Öffnen Sie nun die Datei runserver.py im Nano-Editor als Superuser

     $ Sudo nano runserver.py
    
  3. wenn Sie die Variable 'default_port' finden, sehen Sie, dass die Standardportnummer '8000' ist. Jetzt können Sie es ändern, was Sie wollen.

  4. Beenden Sie nun die Datei und speichern Sie sie mit "STRG + X und Y zum Speichern der Datei".

Hinweis: Ersetzen Sie <2/3> .x durch Ihre verwendbare Version von Python

0
rhoitjadhav

Dies ist ein alter Beitrag, aber für diejenigen, die interessiert sind:

Wenn Sie die Standardportnummer so ändern möchten, dass Sie beim Ausführen des Befehls "runserver" mit Ihrem bevorzugten Port beginnen, gehen Sie wie folgt vor:

  1. Finden Sie Ihre python Installation. (Sie können mehrere Pythons installieren und Sie können auch Ihre Version der virtuellen Umgebung haben, stellen Sie also sicher, dass Sie die richtige finden.)
  2. Suchen Sie im Ordner python den Ordner site-packages. Dort finden Sie Ihre Django) - Installation
  3. Öffnen Sie die Befehle Django folder-> core -> management ->
  4. Öffnen Sie im Befehlsordner das Skript runserver.py mit einem Texteditor
  5. Suchen Sie das DEFAULT_PORT-Feld. Standardmäßig entspricht es 8000. Ändere es nach Belieben DEFAULT_PORT = "8080"
  6. Starten Sie Ihren Server neu: python manage.py runserver und stellen Sie sicher, dass Ihre festgelegte Portnummer verwendet wird

Es funktioniert mit python 2.7, aber es sollte auch mit neueren Versionen von python funktionieren. Viel Glück

0
Daniel Kiss