Hinweise zum Lesen des Flaschenquellcodes (1): WSGI
Vorwort
Bottle ist ein Python-Webframework. Das gesamte Framework verfügt über nur eine Datei, weniger als 4.000 Codezeilen und keine Abhängigkeiten außer der Python-Standardbibliothek. Es enthält jedoch allgemeine Funktionen von Web-Frameworks wie Routing, Vorlagen und Plug-Ins. Es gibt keinen besseren Zeitpunkt als das Lesen des Bottle-Quellcodes, um zu verstehen, was ein Web-Framework ist und wie es funktioniert. Da Bottle ein Framework ist, das WSGI unterstützt, wollen wir vor dem Lesen des Quellcodes zunächst verstehen, was WSGI ist.
Hinweis: Die in diesem Artikel verwendete Flaschenversion ist 0.12.13.
WSGI
Allgemeine Webserver können nur statische Seiten verarbeiten. Handelt es sich um dynamische Inhalte, muss der Server mit Serversprachen wie Java/Python/Ruby interagieren und ihnen den Inhalt zur Verarbeitung übergeben. Da die meisten Webserver in C geschrieben sind, können sie die Serversprache nicht direkt ausführen. Daher ist eine Brücke zwischen beiden erforderlich (in praktischen Anwendungen wird normalerweise ein Anwendungsserver zwischen dem Webserver und der WSGI-Anwendung hinzugefügt, um WSGI zu unterstützen). In Python ist WSGI eine solche Brücke. Die Implementierung von WSGI ist in zwei Teile unterteilt: Der eine ist der Server und der andere die Anwendung. Werfen wir einen Blick darauf, wie jeder von ihnen aussieht und wie die beiden zusammenarbeiten.
1 class Server: 2 3 def __init__(self, server_address): 4 self.server_address = server_address 5 6 def set_app(self, application): 7 self.app = application 8 9 def serve_forever(self):10 while True:11 # socket.accept()12 if request_comein():13 self.handle_request()14 15 def handle_request(self):16 request_data = self.get_request()17 self.parse_request(request_data)18 environ = self.get_environ()19 result = self.application(environ, self.start_response)20 self.send_response(result)21 22 def start_response(self, status, headers, exc_info):23 pass24 25 def get_environ(self):26 pass27 28 def get_request(self):29 pass30 31 def parse_request(self, text):32 pass33 34 def send_response(self, message):35 pass36 37 38 def make_server(host, port, app, server=Server):39 server = server((host, port))40 server.set_app(app)41 return server42 43 def simple_app(environ, start_response):44 status = '200 OK'45 response_headers = [('Content-type', 'text/plain')]46 start_response(status, response_headers)47 return 'Hello World!'48 49 if __name__ == '__main__':50 server = make_server('localhost', 8080, simple_app)51 server.serve_forever()
Dieses Servermodell ist durch den Platz begrenzt und lässt viele Details aus. Wenn Sie einen einfachen und lauffähigen WSGI-Server wünschen, können Sie hier auf Let's Build A verweisen Webserver.Teil 2.
Nach Erhalt der Anfrage analysiert der Server die Informationen in der Anfragenachricht und speichert das Ergebnis in einem Wörterbuch namens environ. Anschließend wird die Anwendung application(environ, start_response) mit environ und der start_response-Funktion aufgerufen, die Header-Informationen als Parameter verarbeitet. Abschließend werden die Ergebnisse der Anwendung zu einer neuen Antwort zusammengefasst und an den Client zurückgesendet.
Auf der Anwendungsseite ist eine WSGI-Anwendung ein aufrufbares Objekt. Es kann eine Funktion, Methode, Klasse oder eine Instanz mit einer __call__
-Methode sein. Die obige Anwendung ist eine Funktion.
Wenn verschiedene Server und Anwendungen/Frameworks gemäß WSGI-Standards entwickelt werden, können wir verschiedene Server und Frameworks entsprechend unseren Anforderungen frei kombinieren.
Die einfachste Anwendung von Bottle
Nachdem wir WSGI kurz verstanden haben, kehren wir zu Bottle zurück, um zu beobachten, wie eine Bottle-Anwendung aussieht, wie sie ausgeführt wird und wie wir sie ausführen Unterschied zwischen den Modellen.
1 from bottle import Bottle, run2 3 app = Bottle()4 5 @app.route('/hello')6 def hello():7 return 'Hello World!'8 9 run(app, host='localhost', port=8080, server='wsgiref')
Führen Sie nun dieses Programm aus und verwenden Sie den Browser, um auf die Adresse „localhost:8080/hello“ zuzugreifen. Daraufhin wird „Hello World“ angezeigt !'
1 Im Gegensatz zur oben genannten Anwendung ist die Flaschenanwendung eine Instanz. Gemäß den WSGI-Vorschriften muss das Bottle-Objekt die Methode __call__ implementieren:
1 def __call__(self, environ, start_response):2 ''' Each instance of :class:'Bottle' is a WSGI application. '''3 return self.wsgi(environ, start_response)
Diese Bottle.wsgi-Methode ist also der Eingang für den Server, um das aufzurufen Bottle-Anwendung, und es ist auch der Einstiegspunkt für den Server, um die Bottle-Anwendung aufzurufen. Unser Einstiegspunkt zum Lesen des Quellcodes.
2. @app.route() Dieser Dekorator bindet eine Funktion an eine URL. Wenn wir auf „localhost:8080/hello“ zugreifen, wird die Hallo-Funktion aufgerufen.
3. Der Standardserver von Bottle ist wsgiref (eine einfache Implementierung von WSGI in der Python-Standardbibliothek). Natürlich hat Bottle auch Adapter für viele Server geschrieben. Sie müssen nur den Wert von server ändern, und die Funktion run() findet den entsprechenden Adapter basierend auf dem Namen des Servers. Es ist nicht erforderlich, zusätzlichen Code zu schreiben.
Funktion und Adapter-Teilecode ausführen:
1 def run(app=None, server='wsgiref', host='127.0.0.1', port=8080, 2 interval=1, reloader=False, quiet=False, plugins=None, 3 debug=None, **kargs): 4 if server in server_names: 5 server = server_names.get(server) 6 if isinstance(server, basestring): 7 server = load(server) 8 if isinstance(server, type): 9 server = server(host=host, port=port, **kargs)10 if not isinstance(server, ServerAdapter):11 raise ValueError("Unknown or unsupported server: %r" % server)12 ...13 server.run(app)14 15 class MeinheldServer(ServerAdapter):16 def run(self, handler):17 from meinheld import server18 server.listen((self.host, self.port))19 server.run(handler)
Endlich
in diesem Artikel haben wir kurz vorgestellt, wie Server und Anwendungen unter dem WSGI-Standard interagieren. Im nächsten Artikel konzentrieren wir uns weiterhin auf diese einfachste Anwendung und sprechen über die Routing-Funktionen im Zusammenhang mit @app.route().
Das obige ist der detaillierte Inhalt vonHinweise zum Lesen des Flaschenquellcodes (1): WSGI. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

Wie lösche ich Xiaohongshu-Notizen? Die meisten Benutzer wissen nicht, wie man Xiaohongshu-Notizen löscht. Als nächstes bringt der Editor den Benutzern Bilder und Texte zum Löschen von Xiaohongshu-Notizen ein Blick! Tutorial zur Verwendung von Xiaohongshu So löschen Sie Xiaohongshu-Notizen 1. Öffnen Sie zunächst die Xiaohongshu-App und rufen Sie die Hauptseite auf. Wählen Sie in der unteren rechten Ecke [Ich] aus, um den speziellen Bereich aufzurufen. 2. Klicken Sie dann im Bereich „Mein“ auf die Notizseite als Wählen Sie wie unten gezeigt die Notiz aus, die Sie löschen möchten. 3. Rufen Sie die Notizseite auf und klicken Sie auf [drei Punkte] in der oberen rechten Ecke. 4. Schließlich wird die Funktionsleiste unten erweitert. Klicken Sie zum Abschluss auf [Löschen].

Aus Xiaohongshu gelöschte Notizen können nicht wiederhergestellt werden. Als Wissensaustausch- und Einkaufsplattform bietet Xiaohongshu Benutzern die Möglichkeit, Notizen aufzuzeichnen und nützliche Informationen zu sammeln. Laut der offiziellen Erklärung von Xiaohongshu können gelöschte Notizen nicht wiederhergestellt werden. Die Xiaohongshu-Plattform bietet keine spezielle Funktion zur Wiederherstellung von Notizen. Das bedeutet, dass, sobald eine Notiz in Xiaohongshu gelöscht wurde, sei es versehentlich oder aus anderen Gründen, es im Allgemeinen unmöglich ist, den gelöschten Inhalt von der Plattform wiederherzustellen. Wenn Sie auf besondere Umstände stoßen, können Sie versuchen, das Kundendienstteam von Xiaohongshu zu kontaktieren, um zu erfahren, ob es Ihnen bei der Lösung des Problems helfen kann.

Verknüpfen Sie AppleNotes auf dem iPhone mit der Funktion „Link hinzufügen“. Hinweise: Sie können Verknüpfungen zwischen Apple Notes auf dem iPhone nur erstellen, wenn Sie iOS17 installiert haben. Öffnen Sie die Notizen-App auf Ihrem iPhone. Öffnen Sie nun die Notiz, zu der Sie den Link hinzufügen möchten. Sie können auch eine neue Notiz erstellen. Klicken Sie irgendwo auf den Bildschirm. Daraufhin wird Ihnen ein Menü angezeigt. Klicken Sie auf den Pfeil rechts, um die Option „Link hinzufügen“ anzuzeigen. Klicken Sie darauf. Jetzt können Sie den Namen der Notiz oder die Webseiten-URL eingeben. Klicken Sie dann oben rechts auf „Fertig“ und der hinzugefügte Link wird in der Notiz angezeigt. Wenn Sie einem Wort einen Link hinzufügen möchten, doppelklicken Sie einfach auf das Wort, um es auszuwählen, wählen Sie „Link hinzufügen“ und drücken Sie

Als Xiaohongshu-Benutzer kennen wir alle die Situation, in der veröffentlichte Notizen plötzlich verschwunden sind, was zweifellos verwirrend und besorgniserregend ist. Was sollen wir in diesem Fall tun? Dieser Artikel konzentriert sich auf das Thema „Was tun, wenn die von Xiaohongshu veröffentlichten Notizen fehlen“ und gibt Ihnen eine ausführliche Antwort. 1. Was soll ich tun, wenn die von Xiaohongshu veröffentlichten Notizen fehlen? Erstens: Keine Panik. Wenn Sie feststellen, dass Ihre Notizen fehlen, ist es wichtig, ruhig zu bleiben und nicht in Panik zu geraten. Dies kann durch einen Plattformsystemausfall oder Betriebsfehler verursacht werden. Die Überprüfung der Veröffentlichungsdatensätze ist einfach. Öffnen Sie einfach die Xiaohongshu-App und klicken Sie auf „Ich“ → „Veröffentlichen“ → „Alle Veröffentlichungen“, um Ihre eigenen Veröffentlichungsdatensätze anzuzeigen. Hier können Sie zuvor gepostete Notizen ganz einfach finden. 3.Reposten. Wenn gefunden

Wie füge ich Produktlinks in Notizen in Xiaohongshu hinzu? In der Xiaohongshu-App können Benutzer nicht nur verschiedene Inhalte durchsuchen, sondern auch einkaufen. Wenn Sie ein Experte in diesem Bereich sind, gibt es in dieser App viele Einkaufsempfehlungen und gute Produktfreigaben Mit der App können Sie auch einige Einkaufserlebnisse teilen, Händler für eine Zusammenarbeit finden, Links in Notizen hinzufügen usw. Viele Menschen sind bereit, diese App zum Einkaufen zu verwenden, weil sie nicht nur bequem ist, sondern auch viele Experten gibt einige Empfehlungen ab. Sie können interessante Inhalte durchsuchen und sehen, ob es Kleidungsprodukte gibt, die zu Ihnen passen. Schauen wir uns an, wie man Produktlinks zu Notizen hinzufügt! So fügen Sie Produktlinks zu Xiaohongshu-Notizen hinzu: Öffnen Sie die App auf dem Desktop Ihres Mobiltelefons. Klicken Sie auf die App-Homepage

Als Programmiersprache auf hohem Niveau ist Python leicht zu erlernen, leicht zu lesen und zu schreiben und wird häufig in der Softwareentwicklung eingesetzt. Aufgrund des Open-Source-Charakters von Python ist der Quellcode jedoch für andere leicht zugänglich, was einige Herausforderungen für den Schutz des Software-Quellcodes mit sich bringt. Daher müssen wir in praktischen Anwendungen häufig einige Methoden anwenden, um den Python-Quellcode zu schützen und seine Sicherheit zu gewährleisten. Beim Schutz des Software-Quellcodes stehen für Python verschiedene Anwendungspraktiken zur Auswahl. Nachfolgend sind einige häufige aufgeführt

In diesem Artikel zeigen wir Ihnen, wie Sie Microsoft Reading Coach im Immersive Reader auf einem Windows-PC verwenden. Lesehilfefunktionen helfen Schülern oder Einzelpersonen dabei, das Lesen zu üben und ihre Lese- und Schreibfähigkeiten zu entwickeln. Sie beginnen mit dem Lesen einer Passage oder eines Dokuments in einer unterstützten Anwendung. Auf dieser Grundlage wird Ihr Lesebericht vom Reading Coach-Tool erstellt. Der Lesebericht zeigt Ihre Lesegenauigkeit, die Zeit, die Sie zum Lesen benötigt haben, die Anzahl der richtigen Wörter pro Minute und die Wörter, die Sie beim Lesen am schwierigsten fanden. Sie können auch die Wörter üben, was Ihnen dabei hilft, Ihre Lesefähigkeiten im Allgemeinen zu verbessern. Derzeit nur Office oder Microsoft365 (einschließlich OneNote for Web und Word for We

Als Lifestyle-Sharing-Plattform deckt Xiaohongshu Notizen in verschiedenen Bereichen wie Essen, Reisen und Schönheit ab. Viele Benutzer möchten ihre Notizen zu Xiaohongshu teilen, wissen aber nicht, wie das geht. In diesem Artikel werden wir den Prozess des Veröffentlichens von Notizen auf Xiaohongshu detailliert beschreiben und untersuchen, wie bestimmte Benutzer auf der Plattform blockiert werden können. 1. Wie veröffentliche ich Notizen-Tutorials auf Xiaohongshu? 1. Registrieren und anmelden: Zunächst müssen Sie die Xiaohongshu-APP auf Ihr Mobiltelefon herunterladen und die Registrierung und Anmeldung abschließen. Es ist sehr wichtig, dass Sie Ihre persönlichen Daten im persönlichen Zentrum vervollständigen. Indem Sie Ihren Avatar hochladen, Ihren Spitznamen und Ihre persönliche Vorstellung eingeben, können Sie anderen Benutzern das Verständnis Ihrer Informationen erleichtern und ihnen helfen, Ihren Notizen mehr Aufmerksamkeit zu schenken. 3. Wählen Sie den Veröffentlichungskanal aus: Klicken Sie unten auf der Startseite auf die Schaltfläche „Notizen senden“ und wählen Sie den Kanal aus, den Sie veröffentlichen möchten.
