Principes de base de Flask
Flask est une « micro-infrastructure » web open source. Quand les créateurs utilisent le terme « micro-infrastructure », cela signifie que l’infrastructure effectuera les tâches requises d’une infrastructure web, mais qu’elle n’inclut pas de fonctionnalités avancées ni d’autres exigences spécifiques que votre application doit suivre pour fonctionner correctement. Cette approche permet à Flask d’être extrêmement flexible et parfait une utilisation comme serveur frontal pour les serveurs principaux existants ou les API, comme Azure AI services !
Lors de la création d’une application web avec n’importe quelle infrastructure, il existe certains concepts fondamentaux à comprendre : le routage, les méthodes et la création de modèles. Nous allons explorer ces concepts avant d’écrire notre code.
Réponse aux requêtes des utilisateurs avec des itinéraires
Lorsqu’un utilisateur utilise une application web, il indique ce qu’il souhaite faire ou les informations qu’il recherche, en accédant à différents localisateurs de ressources uniformes (ou URL). Ils peuvent taper directement une adresse (par exemple https://adventure-works.com
) ou sélectionner un lien ou un bouton qui comprend l’URL appropriée. Sur un site de commerce électronique, vous pouvez avoir des URL qui se présentent comme suit :
https://adventure-works.com/
pour la page principalehttps://adventure-works.com/products/widget
pour plus d’informations sur un widgethttps://adventure-works.com/cart/buy
pour effectuez un achat
En tant que développeur, nous n’avons pas besoin de se soucier de la première partie de l’URL ni du domaine (adventure-works.com dans notre exemple). Notre application est mise en action en fonction de ce qui vient après le nom de domaine, en commençant par le /. La partie qui suit le nom de domaine est ce que l’on appelle un itinéraire.
Un itinéraire est un chemin d’accès à une action. Comme lorsque vous appuyez sur un bouton dans une application mobile, un itinéraire indique l’action que l’utilisateur souhaite effectuer. Nous allons inscrire différents itinéraires dans notre application web pour répondre aux diverses requêtes que notre application prend en charge.
Dans notre application, nous indiquons comment nous voulons répondre à une demande de routage particulière en fournissant une fonction. Un itinéraire est un mappage à une fonction. Lorsque nous envisageons d’écrire du code en général, ce concept est relativement naturel. Lorsque nous souhaitons effectuer une action particulière, nous appelons une fonction. Nos utilisateurs feront exactement la même chose ! Ils le feront seulement de façon un peu différente, en accédant à un itinéraire.
Méthodes ou verbes
Les itinéraires sont accessibles de plusieurs façons, par le biais de ce qui est connu sous le nom de méthodes ou de verbes (les deux termes signifient la même chose et peuvent être utilisés indifféremment). Le mode d’accès à l’itinéraire fournit un contexte supplémentaire sur l’état de la requêtes de l’utilisateur et l’action que l’utilisateur souhaite effectuer.
De nombreuses méthodes sont disponibles lors de la création d’une application web, mais les deux plus courantes (et les deux seulement sur lesquelles nous allons nous concentrer) sont GET et POST. GET indique généralement que l’utilisateur demande des informations, tandis que POST indique que l’utilisateur doit nous envoyer un message et recevoir une réponse.
Notes
Quel que soit le verbe utilisé, les informations peuvent toujours être retournées à l’utilisateur.
Un flux d'application courant qui utilise GET et POST s’appuie sur un formulaire. Supposons que nous créons une application dans laquelle l’utilisateur souhaite s’inscrire pour obtenir une liste de diffusion :
- L’utilisateur accède au formulaire d’inscription via GET
- L’utilisateur remplit le formulaire et sélectionne le bouton Envoyer
- Les informations du formulaire sont renvoyées au serveur à l’aide de POST
- Un message de « réussite » est renvoyé à l’utilisateur
Comme vous pouvez le soupçonner, l’utilisateur n’indique pas directement le verbe qu’il souhaite utiliser, il est contrôlé par l’application. En règle générale, si l’utilisateur accède directement à une URL, en la tapant ou en sélectionnant un lien, il accède à la page à l’aide de GET. Lorsqu’ils sélectionnent un bouton pour un formulaire, ils envoient généralement les informations via POST.
Notes
Nous conservons cette conversation à un niveau relativement haut, car une discussion complète sur les méthodes n’entre pas dans le cadre de ce module.
Modèles
Le langage HTML est le langage utilisé pour structurer les informations affichées dans un navigateur, tandis que la Feuille de style en cascade ou CSS, est utilisée pour gérer le style et la mise en page. Lors de la création d’une application, la plupart du code HTML est statique, ce qui signifie qu’il ne change pas. Toutefois, pour rendre nos pages dynamiques, nous devons pouvoir placer des informations par programmation dans une page HTML. Presque chaque infrastructure web prend en charge cette exigence par le biais de modèles.
Un modèle vous permet d’écrire le code HTML principal (ou un modèle) et d’indiquer des espaces réservés pour les informations dynamiques. La syntaxe la plus courante pour les espaces réservés est probablement {{ }}
. Jinja, le moteur de création de modèles pour Flask, utilise cette syntaxe.
<h1>Welcome, {{ name }}</h1>
Dans l’exemple précédent, nous avons notre HTML de h1
(un en-tête), avec le texte que nous souhaitons afficher. La {{ name }}
indique que nous souhaitons afficher une variable nommée name
juste après Bienvenue. En utilisant cette syntaxe, nous pouvons écrire notre code HTML avec nos compétences existantes et injecter les informations dynamiques en fonction des besoins.