Flask Tutorials

Flask-App auf 0.0.0.0 ausführen

Spread the love

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()

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.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert