Was ist der Unterschied zwischen dem normalen Ausführen von Python-Webanwendungen und dem Ausführen unter WSGI?

Was ist der Unterschied zwischen dem normalen Ausführen von Python-Webanwendungen und dem Ausführen unter WSGI?

Ich weiß, dass Sie, um eine Python-Webanwendung (eine mit Frameworks wie Flask und Django entwickelte Anwendung) auf dem Server auszuführen, diese mithilfe von Dingen wie uwsgi, wsgigunicornusw. bereitstellen und für die Ausführung mit Webservern wie apache2& konfigurieren müssen nginx.

Ich weiß aber, dass ich die Anwendung einfach ausführen kann python my_app.pyund sie auf dem Server mit den folgenden Ports funktioniert: mywebsite.com:5000. Außerdem kann ich einen Proxy auf dem Webserver verwenden, um mywebsite.com:5000zu etwas wie test.example.comoder jedem beliebigen Ort umzuleiten.

Was ist also der Unterschied zwischen den beiden Möglichkeiten? Welche sollte ich verwenden?

Danke.

Antwort1

Dies ist nicht bei allen Frameworks der Fall, aber bei Django und Flask ist die Ausführung im von Ihnen erwähnten Dev-HTTP-Modus nur ein Thread.

Der Server kann also immer nur eine Verbindung gleichzeitig verarbeiten. Wenn also zwei Verbindungen gleichzeitig eingehen, verarbeitet der Server eine und lässt die andere warten.

Ein WSGI-Server mit Apache/Nginx davor kann viele Verbindungen gleichzeitig verarbeiten.

verwandte Informationen