So leicht die Flaschenbibliothek auch ist, so einfach ist sie auch. Ich glaube, dass die Leser vor dem Lesen dieses Artikels bereits ein einfaches Verständnis von Python haben. Welche mysteriöse Operation kann also die Funktionen eines Servers mit Hunderten von Codezeilen vervollständigen? Warten wir ab.
1) Verwenden Sie pip zur Installation
2) Laden Sie die Flaschendatei herunter
https://github.com/bottlepy/bottle/blob/master/bottle.py
Wie das Sprichwort sagt: Alles ist zuerst erfolgreich. HelloWorld. Anhand dieses einfachen Beispiels können wir den grundlegenden Mechanismus von Bottle verstehen.
Zuerst der Code:
Zuerst importieren wir die Get- und Run-Methoden aus der Flaschenbibliothek.
Als nächstes müssen wir eine IP-Adresse und einen Port erstellen. In der Testphase verwenden wir 127.0.0.1 (lokale Adresse) und Port 80 . (Standardport des Browsers) Kommen Sie zu:
Führen Sie diesen Code python HelloWorld.py aus
Auf diese Weise wird der Website-Server ausgeführt, öffnen Sie den Browser und geben Sie 127.0.0.1(:80) ein
Die bekannte 404-Fehlermeldung Nicht gefunden: „/“. Das liegt natürlich daran, dass die Website neben dem Server auch eine sehr wichtige Komponente hat – die Webseite!
Wenn der Browser auf die IP-Adresse zugreift, sendet er eine Get-Anfrage an die IP und wartet auf die Rückgabe der Webseitendaten. Anschließend kapselt unsere Flaschenbibliothek die Get-Methode, um diesen Prozess zu implementieren.
Der Code lautet wie folgt:
Ich weiß nicht, ob Sie das @-Symbol oben def kennen. Dieses Symbol bedeutet Dekorator in der Python-Syntax. Es kann einfach als Verwendung der get-Funktion zum Dekorieren verstanden werden Homepage. Hier fügt @get(‘/’) der Homepage die entsprechende Funktion hinzu, wenn der Browser die Anfrage GET 127.0.0.1/ sendet. Sie können eine beliebige Verarbeitung durchführen und schließlich die Antwort auf die Get-Anfrage zurückgeben. Hier wird die einfache HelloWorld-Seite zurückgegeben. Wenn Sie sie erneut ausführen, erhalten Sie diesen Effekt:
Sie können auch die in Bottle gekapselte Vorlagenmethode verwenden, um die Webseitendaten separat in die .tpl-Datei zu schreiben. Das Beispiel ist wie folgt:
Die Ausführungsfunktion verfügt auch über einen Parameter-Reloader. Wenn Sie ihn auf „True“ setzen, wird das automatische Neuladen aktiviert, wenn Sie Änderungen vornehmen, was zu Hot-Updates führen kann der Website.
Da wir oben get('/') verwendet haben, handelt es sich im Wesentlichen um ein statisches Routing. Die vor dem Betrieb des Servers ermittelte Adresse kann mit dieser Methode weitergeleitet werden.
Was ist, wenn es sich um die Serverlaufzeit handelt? Der Zugriff auf Dateien auf dem Website-Server kann beispielsweise nicht statisch erfolgen. In diesem Fall können wir dynamisches Routing verwenden. Das dynamische Routing von
Bottle wird durch die Route-Methode implementiert. Ähnlich wie bei get werden auch Dekoratoren zum Dekorieren von Funktionen verwendet, um Routing-Funktionen zu implementieren.
Hier sehen wir etwas Einzigartiges, das in den Parametern des Dekorators erscheint: „Name“. Die von ihr geänderten Parameter haben denselben Namen wie die Parameter nach dem Doppelpunkt. In der Funktion können Sie den Namensparameter als Verarbeitungsvariable verwenden und schließlich die Antwort zurückgeben.
Dynamisches Routing kann die Dateiweiterleitung vereinfachen. Auf einem Server können Hunderte oder Tausende von Dateien gespeichert sein, und es ist unmöglich, sich für jede einzelne auf statische Adressen zu verlassen.
Hier sehen wir eine neue Funktion static_file, der erste Parameter ist der Dateiname und der zweite Parameter ist die Stammverzeichnisadresse (also der Speicherort davon). file) ), das aktuelle Dateisystem ist:
--HelloWorld.py
--store1.txt
#🎜 🎜## 🎜🎜#Besuchen Sie den Browser, um zu gelangen
Natürlich können Sie die Datei auch in einen Ordner legen, ersetzen Sie einfach die Root-Parameter mit einer Datei. Schneiden Sie einfach die Adresse ab.
4. POST-Antwort und Datei-Upload
Zuerst implementieren wir ein Fenster zum Hochladen von Dateien, wie oben.
Die Seite hier ist eine einfache Schnittstelle zur Formularübermittlung. Ich werde sie hier nicht im Detail vorstellen:
# 🎜🎜 #
Die nächste POST-Antwort, der Code lautet wie folgt:
Importieren Sie die Post-Methode aus der Flaschenbibliothek und Anfrage.
Ähnlich wie bei der get-Methode verwenden Sie post, um die Antwortfunktion zu dekorieren, und verwenden Sie dann request im Funktionskörper, um den vom Website-Server empfangenen Post-Anfragetext abzurufen. Die Methode request.forms.get() kann die Zeichenfolge herausnehmen, die dem Schlüssel im Formular entspricht, die Methode request.files.get() kann die Datei herausnehmen, die dem Schlüssel im Formular entspricht, und die Methode save kann Wird zum Speichern der Daten zum Hochladen von Dateien verwendet.
Als nächstes führen wir einen Test durch:
Nachdem wir auf Hochladen geklickt haben, öffnen wir den Server Überprüfen Sie das Stammverzeichnis (das ist der Speicherort der Python-Datei) und stellen Sie fest, dass die Datei erfolgreich hochgeladen wurde!
5. Zusammenfassung
Nach Abschluss dieser Funktionen möchten Sie die Flasche schließlich im Netzwerk bereitstellen ist nur Was macht die Website, wenn sie lokal ausgeführt wird?Tsinghua.com stellt eine öffentliche IP für jeden unserer Netzwerkzugangspunkte bereit. Verwenden Sie ipconfig in cmd, um die IP-Adresse anzuzeigen und die Betriebsparameter in Ihrem öffentlichen Netzwerk zu ändern. Geben Sie dann die IP-Adresse und die Portnummer (Standard 80) in den Browser eines beliebigen Geräts ein (Mobiltelefone werden empfohlen, Computerbrowser sind manchmal sehr langsam), und schon können Sie darauf zugreifen!
Die Bottle-Bibliothek verfügt auch über viele leistungsstarke Funktionen, darunter das Lesen und Schreiben von Cookies sowie das Installieren, Deinstallieren und Deaktivieren von Plug-Ins. Bottle kann auch auf anderen Servern bereitgestellt werden, was sehr einfach ist. Erzielen Sie Multithreading. Diese Funktionen warten darauf, von den Lesern erkundet zu werden!
Das obige ist der detaillierte Inhalt vonLeichtes Python-Webframework: Flaschenbibliothek!. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!