Ich lerne über die Verwendung von Flask zum Ausführen einer Webanwendung. In vielen Anleitungen wird beschrieben, wie Sie uWSGI als Server zum Ausführen einer Flask-App verwenden. Wenn uWSGI die Anwendung ausführen kann, ist Flask weiterhin erforderlich?Ist Flask erforderlich, wenn eine Anwendung mit uWSGI ausgeführt wird?
Antwort
Flask führt keine Anwendung, es ist die Anwendung. uWSGI führt Anwendungen aus, die mit Flask erstellt wurden. Flask ist nicht erforderlich, aber einige Anwendung ist.
WSGI ist ein in PEP 3333 definierter Standard, der beschreibt, wie ein HTTP-Server mit einer Python-Anwendung kommuniziert. uWSGI implementiert die Serverseite von WSGI. Flask ist ein Framework zum Erstellen von Programmen, die die Anwendungsseite von WSGI implementiert.
Da WSGI ein dokumentierter Standard ist, wird Flask zum Erstellen einer WSGI-Anwendung nicht benötigt. uWSGI implementiert die Anwendungsseite nicht, also würden Sie immer noch eine separate Anwendung schreiben und uWSGI verwenden, um das zu bedienen. Jedes andere WSGI-Framework könnte verwendet werden oder es könnte manuell implementiert werden.
Auf der elementarsten einer WSGI Anwendung ist eine, die einen aufrufbaren environ
dict start_response
und Funktion übernimmt, wirkt auf die Daten in der dict ruft start_response
mit Status und Header, dann den Körper der Antwort zurückgibt. Zum Beispiel könnte uWSGI genauso gut dienen, wie es eine Flask-Anwendung dienen könnte.
def basic_application(environ, start_response):
start_response('200 OK', [('Content-type', 'text/plain')])
return b'Hello, World!'
Von der PEP:
sollte dies nicht, dass Anwendungsentwickler WSGI als Web-Programmierung API verwenden, wird verstanden, verstanden werden! Es wird davon ausgegangen, dass Anwendungsentwickler weiterhin vorhandene, hochrangige Framework-Services zur Entwicklung ihrer Anwendungen nutzen werden. WSGI ist ein Tool für Framework- und Server-Entwickler und soll Anwendungsentwickler nicht direkt unterstützen.
Während es möglich ist, wird es nicht empfohlen. Es gibt zu viele Dinge (siehe die PEP), die schwer zu korrigieren sind und nicht besonders interessant oder einfach zu implementieren, die erforderlich wären, um etwas leistungsfähigeres als das obige Beispiel zu schreiben. Aus diesem Grund existieren Frameworks wie Flask.
- 1. Flask, Nginx, uWSGI Python Anwendung nicht gefunden
- 2. Flask-Anwendung auf uwsgi gibt einen TypeError: 'Flask' Objekt ist nicht iterierbar
- 3. Flask-Assets-Pakete kompilieren nicht, wenn sie unter uWSGI ausgeführt werden
- 4. Intelij: Re-Kompilieren, wenn Anwendung ausgeführt wird?
- 5. BroadcastReceiver, wenn die Anwendung nicht ausgeführt wird
- 6. Probleme laufen Flask app unter uwsgi
- 7. nginx + uwsgi + flask - Deaktivieren von benutzerdefinierten Fehlerseiten
- 8. Wenn eine andere Anwendung ausgeführt wird, treten NullPointerException auf Android
- 9. Ich habe eine Ausnahme, wenn Android-Anwendung ausgeführt wird?
- 10. Ist es zwingend erforderlich, jedes Mal, wenn jquery ausgeführt wird, eine Ready-Funktion zu schreiben?
- 11. Flask + GEVENT - SSE mal aus mit nginx + uwsgi
- 12. uWSGI und würdevoll eine Multithread-Flask-App töten
- 13. Fehler erhalten "Gradel Version 1.10 ist erforderlich. Aktuelle Version ist 1.12." wenn "Gradle Wrapper" ausgeführt wird?
- 14. Wird FileStream.Seek() mit SeekOrigin.Begin optimiert, wenn keine Suche erforderlich ist?
- 15. debuggen einer uwsgi python-anwendung mit pycharm
- 16. Überprüfen, ob eine Anwendung mit Windows-Dienst ausgeführt wird
- 17. Wie wird eine WinForms-Anwendung mit einer Tastenkombination ausgeführt?
- 18. Wie wird eine Aktion ausgeführt, wenn CheckBox Listenansicht ausgewählt ist?
- 19. uwsgi http ist mehrdeutig
- 20. Emscripten-Anwendung wird nicht ausgeführt
- 21. didReceiveRemoteNotification wird nicht ausgeführt, wenn App ausgeführt wird (FOREGROUND)
- 22. Schlüsselfehler, wenn kein Wörterbuch erforderlich ist
- 23. Was ist das Anwendungsereignis, das ausgeführt wird, wenn eine Anwendung nach dem Klicken auf eine Push-Benachrichtigung geladen wird?
- 24. Daten in SharedPreferences speichern, wenn die Anwendung nicht ausgeführt wird
- 25. BLE Benachrichtigung, wenn die Anwendung nicht ausgeführt wird
- 26. Xiaomi erhält keine Benachrichtigung, wenn die Anwendung nicht ausgeführt wird
- 27. Benachrichtigung erhalten, wenn ein Befehl in der Anwendung ausgeführt wird
- 28. Kann Flask-App http-Anforderungen behandeln, wenn APscheduler mit BackgroundScheduler ausgeführt wird
- 29. Datagrid Zeilen erscheinen Miniaturröhre, wenn die Anwendung ausgeführt wird
- 30. Einfache Anwendung Protokollierung/Debugging mit Nginx, uwsgi, Kolben?