Wie funktioniert der Python Web Application Stack?

850
Johan

Ich habe hektisch über Python- und REST-Dienste gelesen, da ich mit dem Lernen beginnen und einen Dienst aufbauen möchte. Die Begriffe haben mich sehr verwirrt - meine bisherigen Erfahrungen mit Webanwendungen sind einige begrenzte Apache + PHP-Experimente. Ausgehend von diesem Hintergrund hatte ich in den letzten zwei Tagen einen A-ha-Moment, und dieses Diagramm ist das, was ich versucht habe, alles für mich selbst zu klären.

Wie funktioniert der Python Web Application Stack?

Ich bin versucht, das Diagramm zu ändern, da es so aussieht, als würden einige Web-Frameworks vollständig als Module implementiert. Andere wiederum arbeiten, indem der WSGI-Server eine Framework-Komponente startet, die wiederum Ihre Anwendung aufruft, die dann normalerweise vom Framework bereitgestellte Module verwendet für etwas Funktionalität. Ist das richtig?

Fragen:

  1. Was habe ich ausgelassen oder falsch verstanden?
  2. Es scheint, als sei der Webserver optional, zumindest einige WSGI-Server können "Stand-Alone" ausführen, aber dies wird häufig nur für die Entwicklung / Testung empfohlen.
  3. Gibt es einen eigenständigen WSGI-Server in Produktionsqualität?
  4. Was ist, wenn Sie WSGI nicht verwenden? Die Leute empfehlen oft WSGI, aber wenn ich es richtig lese, ist das die Portabilität. Das Portieren zwischen Webservern / Stacks / Frameworks ist mir eigentlich egal. Das Beseitigen von Schichten hat seinen eigenen Reiz. Wie verändert sich das Bild, wenn Sie WSGI nicht verwenden?
  5. Wo findet das Umschreiben von URLs statt? Nach dem, was ich gelesen habe, scheint es eine Kombination aus zwei Orten zu sein - dem Webserver und / oder der Anwendung. Wenn der Webserver der beste Ort dafür ist, könnte dies eine wichtige Abhängigkeit von einem flexiblen und effizienten Webserver im Stack schaffen.
  6. Wie kann ich URL-Neuschreibungen einschränken? Kann ich die Verwendung von URL-Neuschreibungen vermeiden, z. B. durch rechtes Design der Anwendung? Wenn ich Apache als Webserver wähle, würde ich aus meinem begrenzten Verständnis heraus den Eindruck gewinnen, die Verwendung von .htaccess zu eliminieren - ich kann mir vorstellen, dass man einen dedizierten Apache-Server deaktivieren könnte. htaccess und fügt die Regeln in die Hauptkonfigurationsdatei ein oder optimiert die Verwendung von .htaccess durch eine flache, vereinfachte Verzeichnisstruktur. Dies, zusammen mit dem Deaktivieren aller außer den wesentlichen Apache-Modulen, scheint eine ordentliche Lösung zu sein.
  7. Momentan neige ich dazu, web.py als Framework zu verwenden, und ihre Installationsseite scheint lighttpd zu bevorzugen. Ich habe keine Erfahrung, scheint aber leicht zu beherrschen. Wie verändert lighttpd + web.py das Bild?

Und die wichtigste Frage: Was ist, wenn die Anwendung eine RESTful-API ist? Unterscheiden sich die Antworten auf die obigen Fragen von einem REST-API-Dienst?

1
Falsches SE-Forum vielleicht? Johan vor 9 Jahren 0

0 Antworten auf die Frage