Les articles suivants ne sont pas écrits en utilisant flask-classy sur une base régulière, mais sont écrits tout en étudiant au besoin. Si vous constatez des erreurs, veuillez soumettre une demande de modification ou les signaler dans les commentaires. Je vous remercie.
L'un des frameworks Web légers disponibles en python est flask.
Lorsque vous utilisez flask, vous créez généralement une application à l'aide de décorateurs et de fonctions, mais lorsque vous essayez de créer une grande application Web sur plusieurs fichiers, utilisez un type appelé Blueprint. Vous devez jouer avec Gonyo Gonyo.
Flask-Classy peut introduire une méthode unifiée de routage sans les tracas de la déconner.
https://pythonhosted.org/Flask-Classy/
Je vais le décrire grossièrement en référence à la page ci-dessus.
pip install flask-classy
register``` de la classe créée avec une instance de la classe Flask comme argument **
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()
Si vous lancez le fichier ci-dessus à partir de la ligne de commande, vous devriez pouvoir accéder à
localhost: 5000 / hello et voir la chaîne `` `` hello world
.
Veuillez noter que le processus d'enregistrement de `` 3 '' est ignoré dans les exemples suivants.
flaskview
Pour les noms de classe qui héritent de, comme suffixeview
Peut être utilisé.
helloview
L'url correspondant à/hello/
Ce sera.
"Il peut être utilisé", donc il n'y a pas de problème même si vous n'utilisez pas de suffixe
flaskview
Héritéhello
Même si vous créez une classe, l'url correspondante est/hello/
Ce sera.
Bien que cela apparaisse dans l'utilisation minimale, les méthodes suivantes sont prédéterminées pour être acheminées dans les classes qui héritent de FlaskView.
Nom de la méthode | routage | méthode http |
---|---|---|
index | /Définition de classe/ | get |
get | /Définition de classe/ | get |
post | /Définition de classe/ | post |
put | /Définition de classe/ | put |
patch | /Définition de classe/ | patch |
delete | /Définition de classe/ | delete |
En plus des conventions de dénomination Python habituelles, les noms de méthode suivants sont utilisés dans FlaskView et doivent être évités.
Les noms de méthode autres que ceux ci-dessus sont accessibles comme suit.
URL | méthode http |
---|---|
/Définition de classe/Nom de la méthode |
get |
Il existe également d'autres noms de méthodes spéciaux définis.
Nom de la méthode | une fonction |
---|---|
before_request | Exécuté avant d'exécuter la méthode définie dans la classe |
before_Nom de la méthode cible | Exécuté avant d'exécuter la méthode cible définie dans la classe |
after_request | Exécuté après l'exécution de la méthode définie dans la classe |
after_Nom de la méthode cible | Exécuté après l'exécution de la méthode cible définie dans la classe |
Sera de l'ordre de
L'URL est déterminée par le nom de la classe et le nom de la fonction, mais voici quelques mesures pour l'éviter.
Il y a deux façons
class HelloView(FlaskView):
route_base='/'
route_base``` pour vous inscrire comme argumentHelloView.register(app, route_base='/')
Les deux écrasent / hello```, qui devrait être défini à partir du nom de la classe, et le rendent accessible avec
/
``.
C'est une façon
from flask.ext.classy import FlaskView, route
class HelloView(FlaskView):
@route('/hoge/')
def index(self):
return 'hello'
Comme mentionné ci-dessus, pour la méthode de la classe qui hérite de
FlaskView, utilisez `` `` route
défini dans
flask.ext.classy``` Vous pouvez écraser le routage en le décorant.
Dans le cas de l'exemple ci-dessus, il est accessible lorsque l'url est `` / hello / hoge / ''.
flask.ext.classsy route peut prendre exactement les mêmes arguments que flask route.
** Tout comme un flacon normal, vous ne pouvez obtenir l'accès GET qu'en définissant des méthodes et un routage. ** **
Si vous souhaitez ajouter une méthode http autre que GET, passez une liste avec le nom `` `` methods``` à l'argument de `` `` @ route```.
Pour le moment, il semble que n'importe quelle chaîne de caractères puisse entrer dans l'élément de liste (vérification requise), mais je pense que c'est correct mais pas rentable.
Mettons une méthode HTTP normale.
Voici un exemple.
```python3
from flask.ext.classy import FlaskView, route
class HelloView(FlaskView):
@route('/index/', methods=['GET','POST'])
def index(self):
return 'hello'
Comme mentionné ci-dessus, en ajoutant des `` méthodes '', vous pouvez accéder avec la méthode HTTP correspondante.
Recommended Posts