Chciałbym, aby domyślny port, który manage.py runserver
nasłuchuje, był możliwy do określenia w obcym config.ini
. Czy istnieje łatwiejsze rozwiązanie niż analizowanie sys.argv
wewnątrz manage.py
i wstawianie skonfigurowanego portu?
Celem jest uruchomienie ./manage.py runserver
bez konieczności określania adresu i portu za każdym razem, ale pobranie argumentów z config.ini
.
Odpowiedzi:
utwórz skrypt bash z następującymi elementami:
zapisz go jako serwer uruchomieniowy w tym samym katalogu, co manage.py
i uruchom go jako
źródło
call
. Jeśli to rozwiązanie działa w Twoim przypadku, zaznacz je jako rozwiązane.supervisor
tego teraz, dzięki czemu zarządzanie jest jeszcze łatwiejsze. :-) Ale twoje jest prawdopodobnie najczystszym rozwiązaniem poza pisaniem dedykowanegorunserver
skryptu.Właściwie najłatwiejszym sposobem zmiany (jedynego) portu w rozwoju serwera Django jest:
który powinien uruchomić serwer deweloperski pod adresem http://127.0.0.1:7000/
źródło
Począwszy od Django 1.9, najprostszym rozwiązaniem, jakie znalazłem (opartym na rozwiązaniu Quentina Stafford-Frasera), jest dodanie kilku wierszy, w
manage.py
których dynamicznie modyfikujemy domyślny numer portu przed wywołaniemrunserver
polecenia:źródło
from django.core.management.commands.runserver import Command as runserver; runserver.default_port = "8080
do pliku manage.py. Możesz także zmienić adres odsłuchu za pomocą:runserver.default_addr
Wszystkie poniższe polecenia są możliwe do zmiany portu podczas działania django:
źródło
Utwórz podklasę
django.core.management.commands.runserver.Command
i nadpiszdefault_port
członka. Zapisz plik jako własne polecenie zarządzania, np. Pod<app-name>/management/commands/runserver.py
:Wczytuję tutaj domyślne ustawienia formularza portu (który z kolei odczytuje inne pliki konfiguracyjne), ale równie dobrze możesz je odczytać bezpośrednio z innego pliku.
źródło
runserver.py
. Powinienem to gdzieś zarejestrować?runserver
polecenia. Również może masz inna aplikacja również rejestracji polecenia nazwierunserver
. Spróbuj zmienić nazwę polecenia i sprawdź, czy zostało rozpoznane.<app_name>/management/commands/runserver.py
, ale potemrunserver
używany jest oryginał Django . Kiedy zmieniam jego nazwę narun_server.py
, jest rozpoznawany. Nie widzę nic specjalnegorunserver
na stronie, do której prowadzi link.staticfiles
robi dokładnie to, co sugerujesz . Postępowanie zgodnie z instrukcjami przerywa obsługę plików statycznych w trakcie opracowywania. Najlepiej importować zdjango.contrib.staticfiles.management.commands
.Stworzyliśmy nowe polecenie zarządzania serwerem uruchomieniowym, które jest cienkim opakowaniem wokół standardowego, ale zmienia domyślny port. Z grubsza tworzysz
management/commands/runserver.py
i umieszczasz coś takiego:źródło
W Pycharmie wystarczy dodać port do parametrów
źródło
Jestem bardzo spóźniony na imprezę tutaj, ale jeśli używasz IDE, takiego jak PyCharm, jest opcja w „Edytuj konfiguracje” w menu „Uruchom” (Uruchom> Edytuj konfiguracje), gdzie możesz określić domyślny port. Ma to oczywiście znaczenie tylko wtedy, gdy debugujesz / testujesz za pośrednictwem PyCharm.
źródło
Jeśli chcesz zmienić domyślne konfiguracje, wykonaj następujące kroki:
Otwórz polecenie typu terminala
Teraz otwórz plik runningerver.py w edytorze nano jako superużytkownik
znajdź zmienną „default_port”, a zobaczysz domyślny numer portu „8000”. Teraz możesz to zmienić na cokolwiek chcesz.
Teraz wyjdź i zapisz plik za pomocą „CTRL + X i Y, aby zapisać plik”
Uwaga: Zastąp <2/3> .x swoją używalną wersją Pythona
źródło
Utwórz zmienną środowiskową w swoim .bashrc
eksport RUNSERVER_PORT = 8010
Utwórz alias
alias runningerver = 'django-admin runningerver $ RUNSERVER_PORT'
Używam opakowania zsh i virtualenvs. Umieszczam eksport w projektach po aktywacji skryptu i przypisuję port dla każdego projektu.
źródło
To jest stary post, ale dla zainteresowanych:
Jeśli chcesz zmienić domyślny numer portu, aby po uruchomieniu polecenia „runningerver” rozpocząć od preferowanego portu, wykonaj następujące czynności:
DEFAULT_PORT = "8080"
Działa z Pythonem 2.7, ale powinien działać również z nowszymi wersjami Pythona. Powodzenia
źródło
Zmagałem się z tym samym problemem i znalazłem jedno rozwiązanie. Myślę, że to może ci pomóc. po uruchomieniu
python manage.py runserver
przyjmie 127.0.0.1 jako domyślny adres IP i 8000 jako domyślny numer portu, który można skonfigurować w środowisku Pythona. W ustawieniach Pythona przejdź do<your python env>\Lib\site-packages\django\core\management\commands\runserver.py
i ustaw 1.default_port = '<your_port>'
2. znajdź to pod uchwytem def i ustaw
if not options.get('addrport'): self.addr = '0.0.0.0' self.port = self.default_port
Teraz, jeśli uruchomisz „python manage.py runningerver”, będzie on działał domyślnie na „0.0.0.0”:
Miłego kodowania .....
źródło