1. Comprendre le cadre
En tant que framework Web, Flask est principalement utilisé pour développer des applications Web. Commençons donc par comprendre l'application Web. Le but initial de la naissance du programme d'application Web (World Wide Web) est d'utiliser Internet pour échanger des documents de travail.
1. Tout commence par le client qui lance une requête.
Tous les programmes Flask doivent créer une instance de programme.
Lorsqu'un client souhaite obtenir une ressource, il lance généralement une requête HTTP via le navigateur.
À ce stade, le serveur Web utilise un protocole WSGI (Web Server Gateway Interface) appelé WEB Server Gateway Interface pour transmettre toutes les requêtes du client à l'instance du programme Flask.
Flask utilise Werkzeug pour la distribution du routage (la correspondance entre les requêtes d'URL et les fonctions d'affichage). En fonction de chaque demande d'URL, recherchez la fonction d'affichage spécifique.
Dans un programme Flask, le routage est généralement implémenté via le décorateur de l'instance de programme. Une fois les données obtenues en appelant la fonction d'affichage, les données sont transmises au fichier de modèle HTML.Le moteur de modèle est responsable du rendu des données de réponse HTTP, puis Flask renvoie les données de réponse au navigateur, et enfin le navigateur affiche le résultat retourné.
2. Le client n'est pas nécessairement un navigateur, mais peut également être un logiciel PC, une application mobile, un programme
Selon les travaux côté serveur, il se décompose en deux parties :
Serveur : communiquer avec le client via tcp, recevoir, analyser, regrouper et envoyer des données au format http
Programme métier : effectuer un traitement logique en fonction des données de requête analysées, former les données à renvoyer et les envoyer au serveur
La coopération entre le serveur et le programme métier Python utilise le protocole WSGI.
1.3 Le poids du cadre
Framework lourd : Pour faciliter le développement de programmes métiers, il fournit une multitude d'outils et de composants, tels que Django
Framework léger : ne fournit que les fonctions de base du framework Web, gratuit, flexible et hautement personnalisable, telles que Flask, Tornado
Deux, connais Flask
1. Introduction
Flask est né en 2010. Il s'agit d'un framework de développement Web léger écrit par Armin Ronacher (nom) en langage Python basé sur la boîte à outils Werkzeug. Il est principalement destiné aux petites applications avec des exigences simples.
Flask lui-même est équivalent à un noyau, et presque toutes les autres fonctions ont besoin d'extensions (extension de messagerie Flask-Mail, authentification utilisateur Flask-Login), qui doivent être implémentées par des extensions tierces. Par exemple, vous pouvez utiliser Flask-extension pour ajouter ORM, des outils de vérification de formulaire, le téléchargement de fichiers, la vérification d'identité, etc. Flask n'a pas de base de données par défaut, vous pouvez choisir MySQL ou NoSQL. Sa boîte à outils WSGI utilise Werkzeug (module de routage) et son moteur de modèle utilise Jinja2.
On peut dire que le cœur du framework Flask est Werkzeug et Jinja2.
Le framework le plus célèbre pour Python est Django, en plus de Flask, Tornado et d'autres frameworks. Bien que Flask ne soit pas le framework le plus célèbre, Flask doit être considéré comme l'un des frameworks les plus flexibles, c'est pourquoi Flask est apprécié des développeurs.
2. Comparé à Django
django fournit :
django-admin crée rapidement un répertoire de projet de projet
manage.py gérer l'ingénierie de projet
modèle orm (couche d'abstraction de base de données)
site de gestion d'arrière-plan d'administration
mécanisme de mise en cache
système de stockage de fichiers
Système d'authentification des utilisateurs
Et ceux-ci, le flacon n'a pas, ont tous besoin d'un package d'extension pour fournir
3. Paquet d'extension de flacon
Flask-SQLalchemy : faire fonctionner la base de données ;
Flask-migrate : gestion de la base de données de migration ;
Flask-Mail : courrier ;
Flacon-WTF : forme ;
Flask-script : insérer le script ;
Flask-Login : statut d'utilisateur authentifié ;
Flask-RESTful : un outil pour développer l'API REST ;
Flask-Bootstrap : framework intégré Twitter Bootstrap ;
Flask-Moment : localiser la date et l'heure ;
3. Installer et utiliser Flask
1. Installez le flacon
pip3 install flask
2. Le premier programme Flask
Processus d'exécution du programme Flask :
Tous les programmes Flask doivent avoir une instance de programme.
Une fois que Flask a appelé la fonction d'affichage, il renverra la valeur de retour de la fonction d'affichage en tant que contenu de la réponse au client. En général, le contenu de la réponse est principalement constitué de chaînes et de codes d'état.
Lorsqu'un client souhaite obtenir une ressource, il lance généralement une requête HTTP via le navigateur. À ce stade, le serveur Web utilise le protocole WSGI (Web Server Gateway Interface) pour transmettre toutes les requêtes du client à l'instance du programme Flask. WSGI est une interface simple et générale entre un serveur Web et une application Web définie pour le langage Python. Il encapsule ces codes et opérations sous-jacents pour recevoir des requêtes HTTP, analyser des requêtes HTTP, envoyer des réponses HTTP, etc., afin que les développeurs puissent écrire efficacement des applications Web.
L'instance de programme utilise Werkzeug pour la distribution du routage (la correspondance entre les demandes d'URL et les fonctions d'affichage). En fonction de chaque demande d'URL, recherchez la fonction d'affichage spécifique. Dans un programme Flask, le routage est généralement implémenté via le décorateur de route de l'instance de programme. La méthode add_url_route() sera appelée dans le décorateur de route pour implémenter l'enregistrement de route.
Appelez la fonction d'affichage, récupérez les données de réponse et transmettez les données dans le fichier de modèle HTML.Le moteur de modèle est responsable du rendu des données de réponse, puis Flask renvoie les données de réponse au navigateur.Enfin, le navigateur traite le résultat renvoyé et l'affiche au client.
Créez un projet de flacon, puis créez le fichier app.py.
# 导入Flask类
from flask import Flask
#Flask类接收一个参数__name__
app = Flask(__name__)
# 装饰器的作用是将路由映射到视图函数index
@app.route('/')
def index():
return 'Hello World'
# Flask应用程序实例的run方法启动WEB服务器
if __name__ == '__main__':
app.run()
Démarrez le projet et visitez-le dans le navigateur. À ce moment, il y aura Hello World sur la page.
3. Flask crée un objet d'application
3.1 Paramètres d'initialisation
# 创建flask的应用对象;
# __name__ flask以这个模块所在的目录为总目录,默认这个目录中static为静态目录,templates为模板目录
app = Flask(__name__,
static_url_path='/static', # 访问静态资源的url前缀,默认为static
static_folder='static', # 静态文件的目录,默认为static
template_folder='templates', # 模板文件的目录,默认为templates
)
3.2 Paramètres de configuration
# 配置参数的使用方式(开启调试模式)
# 1.使用配置文件
app.config.from_pyfile("config.cfg") # 在项目下创建一个config.cfg文件,然后在里面写DEBUG=True
# 2.使用对象配置参数
class Config(object):
DEBUG = True
app.config.from_object(Config)
# 3.直接操作config的字典对象
app.config["DEBUG"] = True
3.3 Lire les paramètres de configuration dans la vue
# 2.使用对象配置参数
# class Config(object):
# DEBUG = True
# NAME = "test"
# app.config.from_object(Config)
from flask import Flask, current_app
# 读取配置参数
# 1.直接从全局对象app的config字典中取值
# print(app.config.get("NAME"))
# 2. 通过current_app获取参数
# print(current_app.config.get("NAME"))
3.4 Paramètres de app.run
# 启动Flask程序
app.run() # 默认127.0.0.1
# app.run(host="192.168.1.1", port=5000) # 使用电脑ip
# app.run(host="0.0.0.0", port=5000, debug=True) # 配置host和port。设置0.0.0.0时都可以访问;可以在这里设置调试模式