Jusqu'à présent, j'ai écrit le code flask
comme" magique "sans le savoir bien, donc je vais l'étudier une fois et l'organiser.
Comme objectif
―― Être capable de comprendre ce qui se passe avec la description ――Comprendre la structure grammaticale du code écrit et le faire verbaliser pour qu'il puisse être examiné plus tard.
J'essaierai de l'organiser dans ce domaine.
Jetons un coup d'œil à la structure de base d'une application Web simple.
Je me suis référé ici comme une explication (le script a quelques différences) Premiers pas avec Flask - Documentation Flask Handson 1
#① Module d'importation
from flask import Flask
#② Création d'applications Web
app = Flask(__name__)
#③ Réglage du point final (routage)
@app.route('/')
def hello():
return 'Hello World!'
#④ Démarrez l'application Web~~~~
if __name__ == '__main__':
app.run(debug=True)
Si vous exécutez ce script et accédez à "http://127.0.0.1:8000" dans votre navigateur, vous devriez voir "Hello World!" Sur l'écran. Si tout se passe bien, cela signifie que l'application Web peut être lancée localement.
Le script ci-dessus est divisé en quatre parties.
Lorsque nous créons une application Web avec Flask, nous allons créer différentes parties de ③. L'importation de ① est l'une des grammaires de base de python. Et ②④ est une opération de flacon, donc fondamentalement, il semble qu'il n'y ait pas besoin de changer le code, et c'est la partie qui est souvent écrite comme "magique".
from flask import Flask
Importation de la classe Flask
du module flask
.
Cela vous permet de profiter des fonctionnalités de la classe Flask
dans ce script.
Un fichier python rempli de fonctions et de classes. Il semble bon de penser que le fichier enregistré sous le nom hogehoge.py
est un module.
app = Flask(__name__)
Passer Flask (__ name __)
et __name__
comme premier argument pour créer une instance de la classe Flask et l'assigner à ʻapp. Cette ʻapp
est une image qui contient le cœur de l'application flask, et vous pouvez définir la route avec ʻapp.route () (③) ou démarrer le serveur local avec ʻapp.run ()
à l'avenir. Sera.
__name__
__name__
est l'un des attributs du module et semble être une variable globale (c'est un nom étrange, n'est-ce pas?
Et son identité est une variable qui stocke "où le programme est appelé et exécuté". C'est un nom étrange.
Lorsque ce fichier .py
est lancé directement, le __name__
contiendra la chaîne __main__
.
Par contre, lorsque ce fichier est appelé par ʻimport depuis un autre script, le nom du module (nom de fichier sans extension) est entré dans
name`.
(Je ne comprends toujours pas ce qui se passe quand je passe ceci au premier argument de Flask ()
)
@app.route('/')
def hello():
return 'Hello World!'
Cette description définit le routage C'est une description simple, mais il semble que beaucoup de choses sont condensées.
Organisons-le en citant ici (Getting Started with Flask - Flask Handson 1 documentation).
La ligne @ app.route ('/') enregistre l'action pour l'application avec l'URL /.
En d'autres termes, lorsque nous accédons à l'URL "http://hogehoge.com/" (le chemin est /
), nous créons une action "renvoyer ce type de traitement" avec une fonction et les lier un à un. Je suis.
Dans cet exemple, la valeur de retour de la fonction hello ()
(la chaîne après return
) sera affichée sur la page Web.
Il semble que cette fonction s'appelle une "fonction de visualisation".
Maintenant, que représente l'étrange symbole «@» ici?
La ligne commençant par> @ s'appelle un décorateur et effectue un traitement pour la fonction ou la classe définie dans la ligne suivante. @ app.route ('/') effectue le processus de mappage de la fonction définie dans la ligne suivante avec l'URL spécifiée.
Je pense que le "décorateur" est ici une grammaire du langage Python légèrement avancée. Il semble être assez difficile de comprendre la grammaire ici, le fonctionnement de la fonction d'affichage et l'affichage du résultat sur le Web, je voudrais donc approfondir ma compréhension tout en apprenant un peu plus.
"Decorator" est une méthode de description python qui peut décrire intelligemment le traitement à l'aide de "fonctions de grande hauteur". Les "fonctions de grande hauteur" sont des fonctions qui reçoivent une fonction en tant qu'argument et la traitent, et une fonction qui renvoie une fonction en tant que valeur de retour. C'est.
Ici, on pense que le décorateur est utilisé pour passer la fonction hello ()
à la fonction de grande hauteur route ()
pour traitement.
(Étant donné que la compréhension de ce domaine est ambiguë, veuillez indiquer si elle est erronée)
--Routage: lier des URL avec des actions. Ici, le chemin et la fonction de vue sont liés. --Endpoint: fait référence à l'URL à laquelle accéder. --URL et chemin: pour spécifier l'emplacement du fichier. L'URL est comme un chemin absolu, une adresse sur Internet.
if __name__ == '__main__':
app.run(debug=True)
Enfin, exécutez ʻapp.run () pour démarrer le serveur local et lancer l'application. L'instruction ʻif
détermine "si ce programme a été exécuté directement".
Comme vu dans (2), lorsque le fichier est exécuté directement en tant que script, «main» est assigné à «name».
En d'autres termes, ici, lorsque le programme est exécuté directement, ʻapp.run () `est exécuté et l'application est lancée.
run ()
de ce Flask. Peut être démarré sans lui.
--Par exemple, vous pouvez le démarrer en écrivant ʻapp.run (host = 'http: //127.0.0.1', port = 8080, debug = True) . --ʻApp.run (debug = True)
-> Exécuter en mode débogage
--ʻApp.run (host = 'http: //127.0.0.1') -> Spécifier l'hôte --ʻApp.run (port = 8080)
-> Spécifiez le numéro de port (5000 par défaut)--Hôte: (sous résumé)
Il n'est pas nécessaire qu'un vrai débutant en soit conscient, mais je pense que si vous approfondissez votre compréhension pour passer à l'étape suivante, vous pourrez en faire plus. La seconde mi-temps a été assez rapide, je vais donc la corriger à nouveau en fonction de mon niveau de compréhension.
Lisez le document. Démarrage rapide - Documentation Flask v0.5.1 API — Flask Documentation (1.0.x)
Recommended Posts