Qu’est-ce que Flask ?
Flask est un micro-framework web écrit en Python….Oh!!! On s’arrête d’abord.
Si vous êtes sur cet article, c’est parce que vous recherchez sûrement un framework pour votre projet API, ou tout simplement que vous avez envie d’apprendre à réaliser un API avec votre language de prédilection Python . Si vous ne savez pas ce que c’est que le language de programmation Python je vous conseille de cliquer ici.
On reprends…
Flask est un micro-framework web écrit en Python. Un petit framework? …En quelque sorte.
Un micro framework est un framework qui fourni au développeur les composants nécessaires à la réalisation d’une application. Il reste simple et c’est à vous de lui rajouter tout ce dont vous aurez besoin à la main. Il est aussi très utilisé et ne risque pas de disparaître de sitôt.
Dans cet article nous allons parler de la conception d’une API avec flask. Une API, ou Interface de Programmation d’Application, est un ensemble de définitions et de protocoles qui facilite la création et l’intégration de logiciels d’applications. De façon plus simple, c’est un service qui permet de communiquer avec d’autres services afin d’en obtenir des informations sans connaître le moindre détails sur sa conception. Les API facilitent l’intégration de nouveau composant dans un code existant, ce qui rend la tâche plus facile aux developpeurs.
Quand créer une API ?
Si on dispose de données qu’on souhaite partager avec le monde entier, créer une API est une façon de le faire. Toutefois, les API ne sont pas toujours la meilleurs façon de partager des données avec des utilisateurs. Si le volume des données qu’on souhaite partager est relativement faible, il vaut mieux proposer un « data dump » sous la forme d’un fichier JSON, XML, CSV ou Sqlite. Selon les ressources dont on dispose, cette approche peut être viable jusqu’à un volume de quelques Gigaoctets.
Installer python
1- Rendez-vous sur https://www.python.org/downloads/ et télécharger la dernière version de python.
2- Lancer l’éxecutable.
Vérifier que l’installation s’est bien déroulée en exécutant dans le Power Shell :
py --version
py -m pip --version
Output:
C:\Users\username>py --version Python 3.10.2
C:\Users\username>py -m pip --version pip 22.0.4 from C:\Users\username\AppData\Local\Programs\Python\Python310\lib\site-packages\pip (python 3.10)
Installer flask
Exécuter sur votre Power Shell la commande suivante pour installer flask.
py -m pip install flask jsonify requests
Une fois l'installation terminée, exécuter cette commande pour vérifier si elle s'est bien deroulée.
Output:
C:\Users\username>py -m flask --version Python 3.10.2 Flask 2.0.3 Werkzeug 2.0.3
Félicitations, vous avez réussi à installer Python, Pip et Flask. Si vous avez rencontrez des problèmes durant l’installation, veuillez vous référer a cette vidéo youtube.
Maintenant, on passe au code.
main.py
Créer un fichier nommer main.py, c’est le fichier qui va contenir l’ensemble de notre code.
# En-tête du fichier
from flask import Flask ## Cette instruction permet d’importer la bibliothèque
Flask ##
# Contenu du code
app = flask.Flask(__name__)
## Crée l’objet application Flask, qui contient les données de l’application et les méthodes
correspondant aux actions susceptibles d’être effectuées sur l’objet.
app.config["DEBUG"] = True
## Lance le débogueur, ce qui permet d’afficher un message autre que Bad Gateway s’il y a une erreur dans l’application.
@app.route('/')
## Définir la fonction home pour la page root, la page racine '/'
def home():
return '''<h1>Bienvenue je suis un programme API</h1>'''
# C'est l'action que dois executer la fonction home. Dans notre cas elle retourne un code html.
@app.route('/outside')
def outside():
return "I'm already outside. Let's go talk"
app.run()
## Lancer l'application.
Rendez-vous sur l’adresse http://127.0.0.1:5000/.

Rendez-vous sur l’adresse http://127.0.0.1:5000/outside.

Nous venons de réaliser une application web fonctionnelle sous flask.
# API: Traiter une requête GET
Ici nous allons créer quelques données de test sous la forme d’une liste de dictionnaires.
data= [
{'id': 0,
'title': 'A Fire Upon the Deep',
'author': 'Vernor Vinge',
'first_sentence': 'The coldsleep itself was dreamless.',
'year_published': '1992'},
{'id': 1,
'title': 'Deep',
'author': 'Vinge',
'first_sentence': 'dreamless.',
'year_published': '1997'},
]
@app.route('data/all', methods=['GET'])
def fruit():
return jsonify(data)
@app.route('/data/', methods=['GET'])
def api_id():
# Vérifier si un ID a été fourni dans l'URL.
# Si l'ID est fourni, l'assigner à une variable.
# Si aucun ID n'est fourni, afficher une erreur dans le navigateur.
if 'id' in request.args:
id = int(request.args['id'])
else:
return "Error: Aucun champ id n'a été fourni. Veuillez spécifier un identifiant."
# Créer une liste vide pour nos résultats
results = []
for book in books:
# Boucle à travers les données et correspond aux résultats qui correspondent à l'ID demandé.
# Les identifiants sont uniques, mais d'autres champs peuvent renvoyer de nombreux résultats.
if book['id'] == id:
results.append(book)
# Utiliser la fonction jsonify de Flask pour convertir notre liste de dictionnaires
# dictionnaires Python au format JSON.
return jsonify(results)
# API: Traiter une requête POST
@app.route('/exemple', methods=["POST"])
def exemple_post():
# Exemple de traitement
responses = {}
param1 = request.form["param1"]
responses["return1"] = param1 + " => API résult."
return responses

Le code complet du tutoriel
from flask import Flask
app = flask.Flask(__name__)
app.config["DEBUG"] = True
data= [
{'id': 0,
'title': 'A Fire Upon the Deep',
'author': 'Vernor Vinge',
'first_sentence': 'The coldsleep itself was dreamless.',
'year_published': '1992'},
{'id': 1,
'title': 'Deep',
'author': 'Vinge',
'first_sentence': 'dreamless.',
'year_published': '1997'},
]
@app.route('/')
def home():
return "<h1>Bienvenue je suis un programme API</h1>"
@app.route('/outside')
def outside():
return "I'm already outside. Let's go talk"
@app.route('/data/all', methods=['GET'])
def fruit():
return jsonify(data)
@app.route('/data/', methods=['GET'])
def api_id():
if 'id' in request.args:
id = int(request.args['id'])
else:
return "Error: Aucun champ id n'a été fourni. Veuillez spécifier un identifiant."
results = []
for i in data:
if data['id'] == id:
results.append(i)
return jsonify(results)
@app.route('/exemple', methods=["POST"])
def exemple_post():
responses = {}
param1 = request.form["param1"]
responses["return1"] = param1 + " => API résult."
return responses
app.run()
Les applications web Flask sont faciles à configurer et à exécuter. C’est l’un des frameworks d’applications web les plus populaires pour Python.
2 Comments
mouboe · April 16, 2022 at 1:14 pm
Merci pour cette documentation
Qu’est ce que Apache Airflow ? – AXETAG SAS · June 30, 2022 at 8:50 pm
[…] Avant de passer à l’étape suivante rassurer vous d’installer python sur votre machine. Si python n’est pas installer veuillez vous référé à cet article sur comment installer python ici. […]