Une API (application programming interface ou « interface de programmation d’application ») est une interface logicielle qui permet de « connecter » un logiciel ou un service Ă un autre logiciel ou service afin d’Ă©changer des donnĂ©es et des fonctionnalitĂ©s.
― CNIL, cnil.fr
Partie 1 : Les bases essentielles
1. Premier pas avec Flask
Installation de Python et Flask
Avant tout, il te faut Python sur ton ordinateur :
- Va sur python.org
- Télécharge la dernière version de Python 3
- Installe-le en cochant “Add Python to PATH”
Maintenant, ouvre ton terminal (Command Prompt sur Windows) et tape :
pip install flask
Ton premier “Hello, World!”
Crée un nouveau dossier pour ton projet et dedans crée un fichier app.py
:
from flask import Flask
# Crée l'application
app = Flask(__name__)
# Crée ta première route
@app.route('/')
def hello():
return "Hello, World!"
# Lance l'application
if __name__ == '__main__':
app.run(debug=True)
Comment lancer ton serveur
Dans ton terminal, va dans le dossier de ton projet et tape :
python app.py
Tu devrais voir quelque chose comme :
* Running on http://127.0.0.1:5000
Ouvre ton navigateur et va sur http://127.0.0.1:5000
- Tu vois “Hello, World!” ? Bravo, ta première API fonctionne !
Comprendre ce qui se passe
Flask(__name__)
crée ton application@app.route('/')
dit Ă Flask quelle URL Ă©couterdebug=True
permet de voir les erreurs et recharge automatiquement quand tu changes le code
2. Les routes simples
C’est quoi une route ?
Une route, c’est le chemin dans ton URL. Par exemple :
@app.route('/bonjour')
def dire_bonjour():
return "Bonjour tout le monde !"
@app.route('/aurevoir')
def dire_aurevoir():
return "Au revoir !"
Maintenant tu peux aller sur :
http://127.0.0.1:5000/bonjour
http://127.0.0.1:5000/aurevoir
Créer différentes pages
# Plusieurs routes dans ton app.py
@app.route('/')
def accueil():
return "Page d'accueil"
@app.route('/about')
def about():
return "Ă€ propos de nous"
@app.route('/contact')
def contact():
return "Contactez-nous"
3. Les méthodes HTTP
GET : récupérer des infos
@app.route('/utilisateurs', methods=['GET'])
def obtenir_utilisateurs():
utilisateurs = ['Alice', 'Bob', 'Charlie']
return str(utilisateurs)
POST : envoyer des infos
from flask import request
@app.route('/message', methods=['POST'])
def recevoir_message():
message = request.form.get('message')
return f"Message reçu : {message}"
Tester avec Postman
- Télécharge Postman
- Crée une nouvelle requête
- Choisis GET ou POST
- Entre ton URL
- Pour POST, va dans “Body” > “form-data” et ajoute tes donnĂ©es
4. Travailler avec les données
Les listes et dictionnaires
# Une liste simple de tâches
taches = []
@app.route('/taches', methods=['GET'])
def voir_taches():
return str(taches)
@app.route('/taches', methods=['POST'])
def ajouter_tache():
nouvelle_tache = request.form.get('tache')
taches.append(nouvelle_tache)
return f"Tâche ajoutée : {nouvelle_tache}"
5. Les paramètres d’URL
Routes dynamiques
@app.route('/utilisateur/<nom>')
def profil_utilisateur(nom):
return f"Profil de {nom}"
# Avec des types
@app.route('/article/<int:id>')
def voir_article(id):
return f"Article numéro {id}"
Partie 2 : Allons plus loin
6. Les formulaires
Recevoir des données
from flask import request
@app.route('/login', methods=['POST'])
def login():
username = request.form.get('username')
password = request.form.get('password')
if username == "admin" and password == "secret":
return "Connecté !"
return "Erreur de connexion"
7. JSON et APIs
Envoyer et recevoir du JSON
from flask import jsonify, request
@app.route('/api/data', methods=['GET'])
def get_data():
data = {
'nom': 'Pierre',
'age': 25,
'ville': 'Paris'
}
return jsonify(data)
@app.route('/api/user', methods=['POST'])
def create_user():
user_data = request.get_json() # Pour recevoir du JSON
return jsonify(user_data) # Pour renvoyer du JSON
8. Organisation du code
Structure de base recommandée
mon_api/
├── app.py
├── routes/
│ ├── __init__.py
│ ├── users.py
│ └── tasks.py
└── data/
└── users.py
9. Les erreurs courantes
GĂ©rer les erreurs
@app.errorhandler(404)
def page_not_found(e):
return "Page non trouvée", 404
@app.errorhandler(500)
def internal_error(e):
return "Erreur interne du serveur", 500
10. Premier projet complet : Todo List API
Code complet d’une Todo List
from flask import Flask, request, jsonify
app = Flask(__name__)
# Notre "base de données" simple
todos = []
# Voir toutes les tâches
@app.route('/todos', methods=['GET'])
def get_todos():
return jsonify(todos)
# Ajouter une tâche
@app.route('/todos', methods=['POST'])
def add_todo():
data = request.get_json()
todo = {
'id': len(todos) + 1,
'task': data.get('task'),
'done': False
}
todos.append(todo)
return jsonify(todo)
# Marquer une tâche comme terminée
@app.route('/todos/<int:todo_id>', methods=['PUT'])
def update_todo(todo_id):
for todo in todos:
if todo['id'] == todo_id:
todo['done'] = True
return jsonify(todo)
return "Tâche non trouvée", 404
if __name__ == '__main__':
app.run(debug=True)
Conclusion et prochaines Ă©tapes
Ce que tu as appris
- Créer une API Flask basique
- Gérer différentes routes
- Travailler avec GET et POST
- Manipuler des données
- Créer une petite application complète
Prochainement nous allons voir…
- Apprendre à utiliser une vraie base de données
- Ajouter de l’authentification
- Créer des APIs plus complexes
- Explorer le framework Flask plus en profondeur
Ressources pour continuer
- Documentation officielle de Flask
- Cours en ligne gratuits
N’oublie pas : la pratique est la clĂ© ! Essaie de crĂ©er tes propres projets et n’hĂ©site pas Ă expĂ©rimenter.
Et vous, qu’est-ce qui vous retient de tester Flask ? Dites-moi tout dans les commentaires !
Bon code ! 🚀