Flask ist ein beliebtes Python-Microframework zum Erstellen von Webanwendungen. Manchmal muss Ihre Flask-App von jedem Gerät in Ihrem Netzwerk zugänglich sein, nicht nur von Ihrem lokalen Rechner. Dazu muss der Parameter host
in app.run()
auf '0.0.0.0'
gesetzt werden. Dieser Artikel erklärt, wie Sie Ihren Flask-Entwicklungsserver für die Netzwerkzugänglichkeit konfigurieren.
Inhaltsverzeichnis
- Die Funktion
app.run()
- Konfigurieren des Host-Parameters
- Verwenden des Port-Parameters
- Der Debug-Modus
- Alles zusammenfügen
- Produktive Bereitstellungen
Die Funktion app.run()
Die Funktion app.run()
startet den Flask-Entwicklungsserver. Sie akzeptiert mehrere optionale Argumente, um ihr Verhalten anzupassen. Wichtige Argumente sind host
, port
und debug
.
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello_world():
return "Hello, World!
"
if __name__ == "__main__":
app.run() # Standardmäßig host='127.0.0.1', port=5000
Dies startet den Server auf localhost
(127.0.0.1
) mit Port 5000. Um ihn von anderen Geräten aus zugänglich zu machen, passen wir den Parameter host
an.
Konfigurieren des Host-Parameters
Der Parameter host
gibt die Netzwerkschnittstelle an, an der der Server lauscht. Wenn er auf '0.0.0.0'
gesetzt wird, wird der Server angewiesen, auf allen verfügbaren Schnittstellen zu lauschen, wodurch Ihre Anwendung von jedem Gerät im selben Netzwerk aus zugänglich wird.
if __name__ == "__main__":
app.run(host='0.0.0.0')
Verwenden des Port-Parameters
Der Parameter port
gibt die Portnummer an. Der Standardwert ist 5000. Wenn dieser Port bereits verwendet wird, müssen Sie eine Alternative wählen.
if __name__ == "__main__":
app.run(host='0.0.0.0', port=8080)
Der Debug-Modus
Der Parameter debug
aktiviert Debug-Funktionen wie automatisches Neuladen bei Codeänderungen und einen interaktiven Debugger. Er ist während der Entwicklung äußerst nützlich, stellt aber in der Produktion ein erhebliches Sicherheitsrisiko dar. Verwenden Sie niemals debug=True
in einer Produktionsumgebung.
if __name__ == "__main__":
app.run(host='0.0.0.0', port=8080, debug=True)
Alles zusammenfügen
Die Kombination aller Parameter bietet vollständige Kontrolle über Ihren Entwicklungsserver.
if __name__ == "__main__":
app.run(host='0.0.0.0', port=8081, debug=True)
Produktive Bereitstellungen
Die Methode app.run()
ist nur für die Entwicklung bestimmt. Verwenden Sie für die Produktion einen produktionsreifen WSGI-Server wie Gunicorn oder uWSGI mit einem Prozessmanager wie systemd oder supervisord für bessere Leistung, Sicherheit und Zuverlässigkeit.