[PYTHON] [Django] Ändern Sie die Standard-IP-Adresse des Befehls runserver

Nutzungsumgebung

Referenzartikel

https://scrapbox.io/shimizukawa/127.0.0.1_%E3%81%A8_0.0.0.0_%E3%81%AE%E9%81%95%E3%81%84 https://stackoverflow.com/questions/23639085/django-change-default-runserver-port

Zusammenfassung

Wenn Sie nur die Titeltechnik ausführen möchten, überspringen Sie dieses Element

Ich habe Django in einem Docker-Container ausgeführt und versucht, vom Host-PC aus auf den Server zuzugreifen. Obwohl ich Port Foward ausgeführt habe, konnte ich vom Host-Computer aus nicht nur mit dem normalen Befehl "python manage.py runserver" auf den Server zugreifen. Django setzt die IP-Adresse standardmäßig auf "127.0.0.1". Dies ist jedoch die IP-Adresse der lokalen Loopback-Schnittstelle. Hierbei handelt es sich um die IP-Adresse, die virtuell im Computer erstellt wurde. Greifen Sie daher von außerhalb des Containers auf 127.0.0.1 zu. Selbst wenn Sie es versuchen, gibt es so etwas nicht. Wenn Sie andererseits den Server mit Rails usw. starten, bindet die standardmäßig zugewiesene IP-Adresse (obwohl es sich nicht ausschließlich um eine IP-Adresse handelt) "0.0.0.0" den für alle Internetschnittstellen angegebenen Port. Werde dir geben. Um diese Bindung durchzuführen, können Sie den Befehl "python manage.py runserver 0.0.0.0" ausführen. Es ist jedoch ärgerlich, bei jedem Start des Servers die letzte Version 0.0.0.0 zu drücken, also standardmäßig "127.0.0.1" Ich habe mich stattdessen für "0.0.0.0" entschieden

Wenn Sie Docker nicht verwenden

Wenn Sie Django in Ihrer lokalen Umgebung installiert haben und den Server von dort aus ausführen /usr/local/lib/python3.8/site-packages/django/core/management/commands Irgendwo in runserver.py in Setzen Sie default_addr auf 0.0.0.0.

runserver.py


default_addr = '0.0.0.0'

Speichern Sie einfach damit

Bei Verwendung von Docker

Wenn es umständlich zu lesen ist

https://github.com/kshuta/Django_2.0_Docker Dieses Repository enthält die Docker-Datei, die für die Verwendung von Django 2 unter Docker erstellt wurde, und die zugehörigen Dateien. Wenn Sie Schwierigkeiten beim Lesen haben, versuchen Sie, eine Django-App zu erstellen, indem Sie das oben genannte Repository herunterladen oder als Vorlage verwenden. Die IP-Adresse ist standardmäßig "0.0.0.0". Bitte lesen Sie den Inhalt von Readme und Dockerfile sorgfältig durch, bevor Sie es verwenden.

Wenn es nicht umständlich zu lesen ist

Es ist erst einen Monat her, seit ich Docker verwendet habe, daher bin ich mir nicht sicher, ob dies der richtige Weg ist. Aber es macht die Arbeit also warum nicht.

  1. ** Holen Sie sich runserver.py von irgendwoher. ** **. Wenn Sie "Django 2 Quellcode" usw. googeln, ist der Quellcode von Django auf Github, also Wechseln Sie in das Verzeichnis "django / core / management / command", laden Sie runserver.py herunter und bringen Sie die Datei in das Verzeichnis, in dem sich die Docker-Datei befindet.

  2. ** COPY-Notation in Dockefile hinzufügen ** Im vorherigen Schritt sollte runserver.py im Docker-Kontext platziert werden (möglicherweise ist die Verwendung des Docker-Kontexts falsch). Fügen Sie daher die folgende Notation in die Docker-Datei ein.

Dockerfile


WORKDIR /usr/local/lib/python3.8/site-packages/django/core/management/commands
COPY runserver.py /usr/local/lib/python3.8/site-packages/django/core/management/commands/
WORKDIR /

Ändern Sie das letzte WORKDIR in Ihr Lieblingsverzeichnis. Es muss nicht das Schlimmste sein.

Sie haben jetzt die Standard-IP-Adresse in 0.0.0.0 geändert! Versuchen Sie nun, "python manage.py runserver" über die Shell im Container auszuführen. Wenn Sie vom Host-Computer aus fest auf localhost: 8000 zugreifen, wird die von Ihnen erstellte Seite angezeigt.

Recommended Posts

[Django] Ändern Sie die Standard-IP-Adresse des Befehls runserver
Holen Sie sich die IP-Adresse des Kunden mit Django
[Python] Lassen Sie uns die URL der Django-Administrator-Site ändern
Ändern Sie das Thema von Jupyter
Ändern Sie den Stil von matplotlib
Tauche ein in den Django Custom Befehl [1]
Ändern Sie den Hintergrund von Ubuntu (GNOME)
[Los] Erstellen Sie einen CLI-Befehl, um die Erweiterung des Bildes zu ändern
Ändern Sie das Suffix von django-filter / DateFromToRangeFilter
Betrachten Sie die Beschreibung von Dockerfile (Django + MySQL②)
Ich habe den asynchronen Server von Django 3.0 ausprobiert
Verstehen Sie den Komfort des Django Rest Framework
Skript zum Ändern der Beschreibung von Fasta
Migemo-Version des Befehls: find,: mfind
Ändern Sie die Reihenfolge von PostgreSQL in Heroku
Ändern Sie den Ziel-Batfish-Server von Pybatfish
Beachten Sie den Abschluss eines zeitaufwändigen Befehls
Betrachten Sie die Beschreibung von docker-compose.yml (Django + MySQL ③)
Machen Sie den Standardwert des Arguments unveränderlich
Ändern Sie das Standardreferenz-Repository für die Pip-Installation
Exklusive Veröffentlichung der Django App mit ngrok
Ändern Sie den Dezimalpunkt der Protokollierung von, nach.
Ich habe die Sitzungsaufbewahrungsdauer von Django überprüft
Die Geschichte des Fehlinterpretierens der Swap-Zeile des obersten Befehls
Holen Sie sich nur den Adressteil der Netzwerkkarte (eth0)
Die Geschichte der Anzeige von Mediendateien in Django
Ändern Sie die Auflösung von Ubuntu, das auf VirtualBox ausgeführt wird