Bis jetzt habe ich den "Flask" -Code als "Magie" geschrieben, ohne es gut zu wissen, also werde ich ihn einmal untersuchen und organisieren. Als Ziel
――Können Sie verstehen, was mit der Beschreibung passiert
Ich werde versuchen, es so zu organisieren, dass es auf diesen Bereich abzielt.
Werfen wir einen Blick auf die Grundstruktur einer einfachen Web-App.
Ich habe hier auf eine Erklärung verwiesen (das Skript weist einige Unterschiede auf). Erste Schritte mit Flask - Flask Handson 1-Dokumentation
#① Modul importieren
from flask import Flask
#② Erstellung von Webanwendungen
app = Flask(__name__)
#③ Endpunkteinstellung (Routing)
@app.route('/')
def hello():
return 'Hello World!'
#④ Starten Sie die Webanwendung~~~~
if __name__ == '__main__':
app.run(debug=True)
Wenn Sie dieses Skript ausführen und in Ihrem Browser auf "http://127.0.0.1:8000" zugreifen, sollte "Hallo Welt!" Auf dem Bildschirm angezeigt werden. Wenn alles gut geht, kann die Web-App lokal gestartet werden.
Das obige Skript ist grob in vier Teile unterteilt.
Wenn wir eine Webanwendung mit Flask erstellen, erstellen wir verschiedene Teile von ③. Das Importieren von ① ist eine der grundlegenden Grammatiken von Python. Und ②④ ist eine Kolbenoperation, daher scheint es im Grunde genommen nicht notwendig zu sein, den Code zu ändern, und dies ist der Teil, der oft als "Magie" geschrieben wird.
from flask import Flask
Importieren der Klasse "Flask" des Moduls "Flask". Auf diese Weise können Sie die Funktionalität der Klasse "Flask" in diesem Skript nutzen.
Eine Python-Datei voller Funktionen und Klassen. Es scheint gut zu denken, dass die unter dem Namen "hogehoge.py" gespeicherte Datei ein Modul ist.
app = Flask(__name__)
Wir erstellen eine Instanz der Flask-Klasse, indem wir "Flask (__ name __)" und "name" als erstes Argument übergeben und sie "app" zuweisen.
Diese App
ist ein Image, das den Kern der Kolben-App enthält. Sie können die Route mit app.route ()
(③) definieren oder den lokalen Server mitapp.run ()
starten Wird sein.
__name__
__name__
ist eines der Attribute des Moduls und scheint eine globale Variable zu sein (es ist ein seltsamer Name, nicht wahr?
Und seine Identität ist eine Variable, die speichert, "wo das Programm aufgerufen und ausgeführt wird". Es ist ein seltsamer Name.
Wenn diese .py
-Datei direkt gestartet wird, enthält der __name__
die Zeichenfolge __main__
.
Wenn diese Datei hingegen "importiert" und von einem anderen Skript aufgerufen wird, enthält "name" den Modulnamen (Dateiname ohne Erweiterung).
(Ich verstehe immer noch nicht, was passiert, wenn ich dies an das erste Argument von Flask ()
übergebe.)
@app.route('/')
def hello():
return 'Hello World!'
Diese Beschreibung definiert das Routing Es ist eine einfache Beschreibung, aber es scheint, dass viele Dinge verdichtet sind.
Lassen Sie es uns organisieren, indem Sie von hier aus zitieren (Erste Schritte mit Flask - Flask Handson 1-Dokumentation).
Die Zeile> @ app.route ('/') registriert die Aktion, die der URL / für die App entspricht.
Mit anderen Worten, wenn wir auf die URL "http://hogehoge.com/" zugreifen (Pfad ist "/"), erstellen wir eine Aktion "Ich werde diese Art der Verarbeitung zurückgeben" mit einer Funktion und verknüpfen sie eins zu eins. Ich bin. In diesem Beispiel wird der Rückgabewert der Funktion "hello ()" (die Zeichenfolge nach "return") auf der Webseite angezeigt. Es scheint, dass diese Funktion als "Ansichtsfunktion" bezeichnet wird.
Was bedeutet nun das seltsame Symbol "@" hier?
Die Zeile, die mit> @ beginnt, wird als Dekorator bezeichnet und verarbeitet die in der nächsten Zeile definierte Funktion oder Klasse. @ app.route ('/') führt den Vorgang des Zuordnens der in der nächsten Zeile definierten Funktion zur angegebenen URL durch.
Ich denke, der "Dekorateur" hier ist eine leicht fortgeschrittene Python-Grammatik. Es scheint ziemlich schwierig zu sein, die Grammatik hier zu verstehen und wie die Ansichtsfunktion funktioniert und das Ergebnis im Web angezeigt wird. Deshalb möchte ich mein Verständnis vertiefen und etwas mehr lernen.
"Decorator" ist eine Python-Beschreibungsmethode, die die Verarbeitung mithilfe der "High-Rise-Funktion" intelligent beschreiben kann. "High-Rise-Funktion" ist eine Funktion, die eine Funktion als Argument empfängt und verarbeitet und eine Funktion, die eine Funktion als Rückgabewert zurückgibt. Das ist. Hier wird angenommen, dass der Dekorateur verwendet wird, um die Funktion "Hallo ()" zur Verarbeitung an die Hochhausfunktion "Route ()" zu übergeben. (Da das Verständnis dieses Bereichs nicht eindeutig ist, weisen Sie bitte darauf hin, wenn es falsch ist.)
--Routing: Verknüpfen von URLs mit Aktionen. Hier sind der Pfad und die Ansichtsfunktion verknüpft. --Endpoint: Bezieht sich auf die URL, auf die zugegriffen werden soll. --URL und Pfad: Geben Sie den Speicherort der Datei an. Die URL ist wie ein absoluter Pfad, eine Adresse im Internet. --View-Funktion: Eine Funktion, die beschreibt, welche Art von Operation als Antwort auf eine Anforderung zurückgegeben wird.
if __name__ == '__main__':
app.run(debug=True)
Führen Sie abschließend "app.run ()" aus, um den lokalen Server zu starten und die App zu starten.
Die if-Anweisung bestimmt, ob dieses Programm direkt ausgeführt wurde.
Wie in (2) zu sehen ist, wird, wenn die Datei direkt als Skript ausgeführt wird, "main" "name" zugewiesen.
Mit anderen Worten, wenn das Programm direkt ausgeführt wird, wird app.run ()
ausgeführt und die App wird gestartet.
app.run (debug = True)
-> Im Debug-Modus ausführen
--app.run (host = 'http: //127.0.0.1')
-> Geben Sie den Host an
--app.run (port = 8080)
-> Portnummer angeben (standardmäßig 5000)Es ist nicht notwendig, dass sich ein echter Anfänger dessen bewusst ist, aber ich bin der Meinung, dass Sie mehr tun können, wenn Sie Ihr Verständnis vertiefen, um mit dem nächsten Schritt fortzufahren. Die zweite Hälfte war ziemlich schnell, also werde ich sie nach meinem Verständnis wieder reparieren.
Lesen Sie das Dokument. Schnellstart - Dokumentation zu Flat v0.5.1 API — Flask Documentation (1.0.x)
Recommended Posts