[PYTHON] Grundlegende Verwendung von Flask-Classy

Was ist in diesem Artikel zu tun?

In diesem Artikel nicht behandelt

Die folgenden Artikel werden nicht regelmäßig mit flask-classy geschrieben, sondern während des Studiums nach Bedarf. Wenn Sie Fehler finden, senden Sie bitte eine Bearbeitungsanfrage oder weisen Sie in den Kommentaren darauf hin. Vielen Dank.

Was ist flaschenklasse

Eines der leichtgewichtigen Web-Frameworks, die in Python verfügbar sind, ist flask.

Wenn Sie flask verwenden, erstellen Sie normalerweise eine Anwendung mit Dekoratoren und Funktionen. Wenn Sie jedoch versuchen, eine große Webanwendung über mehrere Dateien hinweg zu erstellen, verwenden Sie einen Typ namens Blueprint. Du musst mit Gonyo Gonyo spielen.

Flask-Classy kann eine einheitliche Routing-Methode einführen, ohne sich damit herumschlagen zu müssen.

Offizielle Seite

https://pythonhosted.org/Flask-Classy/

Ich werde es grob unter Bezugnahme auf die obige Seite beschreiben.

Installation

pip install flask-classy

Mindestverbrauch

  1. Erstellen Sie eine Instanz der Flask-Klasse gemäß der normalen Verwendung von flask
  2. Erstellen Sie eine Klasse, die FlaskView erbt.
  3. ** Verwenden Sie die Klassenmethode `` `register``` der erstellten Klasse mit einer Instanz der Flask-Klasse als Argument **
  4. Starten Sie die Anwendung

from flask import Flask
from flask.ext.classy import FlaskView

app = Flask(__name__)

class HelloView(FlaskView):
    def index(self):
        return "hello world"

HelloView.register(app)

if __name__ == '__main__':
    app.run()

Wenn Sie die obige Datei über die Befehlszeile starten, sollten Sie auf `localhost: 5000 / hello``` zugreifen und die Zeichenfolge` hello world``` sehen können.

Bitte beachten Sie, dass der Prozess der Registrierung von "3" in den folgenden Beispielen übersprungen wird.

Routing- und Namenskonventionen

Klassennamenkonvention

flaskviewFür Klassennamen, die von erben, als SuffixviewKann verwendet werden.

helloviewDie URL entspricht/hello/Es wird sein.

"Es kann verwendet werden", so dass es kein Problem gibt, auch wenn Sie kein Suffix verwenden

flaskviewVererbthelloSelbst wenn Sie eine Klasse erstellen, lautet die entsprechende URL/hello/Es wird sein.

Namenskonvention für Methoden

Obwohl es in der minimalen Verwendung aufgetreten ist, sind die folgenden Methoden vorbestimmt, um in den Klassen weitergeleitet zu werden, die von FlaskView erben.

Methodenname Routing http-Methode
index /Klassendefinition/ get
get /Klassendefinition/ get
post /Klassendefinition/ post
put /Klassendefinition/ put
patch /Klassendefinition/ patch
delete /Klassendefinition/ delete

Zusätzlich zu den üblichen Python-Namenskonventionen werden in FlaskView die folgenden Methodennamen verwendet und sollten vermieden werden.

Auf andere Methodennamen als die oben genannten kann wie folgt zugegriffen werden.

URL http-Methode
/Klassendefinition/Methodenname get

Es sind auch einige andere spezielle Methodennamen definiert.

Methodenname Funktion
before_request Wird ausgeführt, bevor die in der Klasse definierte Methode ausgeführt wird
before_Name der Zielmethode Wird ausgeführt, bevor die in der Klasse definierte Zielmethode ausgeführt wird
after_request Wird ausgeführt, nachdem die in der Klasse definierte Methode ausgeführt wurde
after_Name der Zielmethode Wird ausgeführt, nachdem die in der Klasse definierte Zielmethode ausgeführt wurde

Lebenszyklus

  1. @app.before_request
  2. class.before_request
  3. class.before_ Zielmethode
  4. Klasse. Zielmethode
  5. class.after_ Zielmethode
  6. class.after_request
  7. @app.after_request

Wird in der Reihenfolge von sein

Routing überschreiben

Die URL wird durch den Klassennamen und den Funktionsnamen bestimmt. Hier sind jedoch einige Maßnahmen, um dies zu vermeiden.

Überschreiben Sie das Routing vom Klassennamen

Es gibt zwei Möglichkeiten

Deklarieren Sie `` `route_base``` als Klassenvariable

class HelloView(FlaskView):
    route_base='/'

Übergeben Sie `` `route_base```, um sich als Argument zu registrieren

HelloView.register(app, route_base='/')

Beide oben genannten überschreiben `/ hello```, was aus dem Klassennamen definiert werden sollte, und machen es mit` / `` `zugänglich.

Methodenrouting überschreiben

Dies ist eine Möglichkeit

from flask.ext.classy import FlaskView, route

class HelloView(FlaskView):
	@route('/hoge/')
    def index(self):
        return 'hello'

Wie oben erwähnt, verwenden Sie für die Methode der Klasse, die `FlaskView``` erbt,` route, definiert in `` `flask.ext.classy Sie können das Routing überschreiben, indem Sie es dekorieren.

Im Fall des obigen Beispiels kann darauf zugegriffen werden, wenn die URL `/ hello / hoge /` lautet.

HTTP-Methode

flask.ext.Die classsy route kann genau die gleichen Argumente wie die flask route annehmen.



 ** Wie bei einem normalen Kolben können Sie nur durch Definieren von Methoden und Routing GET-Zugriff erhalten. ** **.

 Wenn Sie eine andere http-Methode als GET hinzufügen möchten, übergeben Sie eine Liste mit dem Namen `` `Methoden``` an das Argument` `` @ route```.

 Derzeit scheint es, dass jede Zeichenfolge zum Element der Liste gelangen kann (Überprüfung erforderlich), aber ich denke, dass dies in Ordnung, aber nicht rentabel ist.
 Lassen Sie uns eine normale HTTP-Methode einfügen.


 Unten ist ein Beispiel.


```python3
from flask.ext.classy import FlaskView, route

class HelloView(FlaskView):
	@route('/index/', methods=['GET','POST'])
    def index(self):
        return 'hello'

Wie oben erwähnt, können Sie durch Hinzufügen von `` `Methoden``` mit der entsprechenden HTTP-Methode zugreifen.

Recommended Posts

Grundlegende Verwendung von Flask-Classy
Grundlegende Verwendung von Jinja2
Grundlegende Verwendung von SQL Alchemy
Super grundlegende Verwendung von Pytest
Zusammenfassung der grundlegenden Verwendung von Pandas
Grundlegende Verwendung von Python-F-String
Grundlegende Verwendung von Btrfs in Arch Linux
Grundlegende Bedienung von Pandas
Zusammenfassung der Verwendung von pyenv
Verwendung von Python-Einheimischen ()
Grundlegende Bedienung von Pandas
Grundkenntnisse in Python
[Einführung in Python] Grundlegende Verwendung von Lambda-Ausdrücken
Notieren Sie sich die Liste der grundlegenden Verwendungszwecke von Pandas
(Anfänger) Grundlegende Verwendung des Datenspeichers von Google App Engine
[Einführung in Python] Grundlegende Verwendung der Bibliothek matplotlib
Bequeme Nutzungsübersicht von Flask
Grundlegender Ablauf der Erkennung von Anomalien
Verwendungshinweise für virtualenv Basic-Befehle
(Minimale) Verwendung von Django Logger
XPath-Grundlagen (1) - Grundkonzept von XPath
Beispiel für die Verwendung von Python Pickle
Einzeiliges Basisdiagramm von HoloViews
[Python] Richtige Verwendung von Join
Index der Verwendung bestimmter Pandas
[2020/06 neueste Version] Grundlegende Verwendung von Poesie, einem Abhängigkeitsmanagement-Tool für Python
Zusammenfassung der Grundkenntnisse von PyPy Teil 1
Zusammenfassung der grundlegenden Implementierung von PyTorch
Benutzerfreundliche Hinweise für Anaconda (conda)
Über den Grundtyp von Go
Grundlegende Grammatik des Python3-Systems (Wörterbuch)
[Python] Richtige Verwendung der if-Anweisung
[Python] Grundlegendes Muster und Verwendung der if-Anweisung (Vergleichsoperator und Boolescher Operator)
Grundlegendes Studium von OpenCV mit Python
[Linux] Überprüfung häufig verwendeter Basisbefehle 2
Erfassung des früheren Stromverbrauchs China Electric Power Edition
Scraping des Nutzungsverlaufs des Community-Zyklus
Grundlegendes Schreiben verschiedener Programmiersprachen (Self-Memo)
Die Verwendung von TensorBoard hat sich geringfügig geändert
Grundlegende Grammatik der Python3-Reihe (Zeichenkette)
Grundlegende Grammatik der Python3-Reihe (Liste, Tapple)
[Linux] Überprüfung häufig verwendeter Basisbefehle
Nicht logische Operatorverwendung von oder in Python
Python-Grundkurs (Ende 15)
Leistungsbewertung der Programmiersprache auf Basisebene
Grundlegende Grammatik des Python3-Systems (inklusive Notation)
Wie man Fabric installiert und wie man es benutzt
BESS Development Memo Teil 01: BESS-Installation und grundlegende Verwendung