Voici la cheatsheet exhaustive en français pour Flask :
Bases & syntaxe
Installation
pip install Flask
Installation du framework Flask
Création d'une application Flask simple
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Hello, World!'
if __name__ == '__main__':
app.run(debug=True)
Création d'un serveur web Flask minimal
Structures de données
Utilisation de variables globales
app.config['SECRET_KEY'] = 'supersecretkey'
Configuration globale pour l'application
Templates Jinja2
{% for item in items %}
<li>item</li>
{% endfor %}
Utilisation des boucles et des conditions dans les templates
Fonctions & methodes essentielles
Route avec paramètres
@app.route('/user/<username>')
def show_user_profile(username):
return f'User {username}'
Routes dynamiques avec paramètres
Gestion des erreurs
@app.errorhandler(404)
def page_not_found(e):
return 'This page does not exist', 404
Gestion des erreurs HTTP
Patterns courants
Templates par défaut
{% extends "base.html" %}
{% block content %}
<h1>Page Content</h1>
{% endblock %}
Utilisation de templates parent/ enfant
Formulaires avec Flask-WTF
from flask_wtf import FlaskForm
from wtforms import StringField, SubmitField
class MyForm(FlaskForm):
name = StringField('Name')
submit = SubmitField('Submit')
@app.route('/', methods=['GET', 'POST'])
def index():
form = MyForm()
if form.validate_on_submit():
return f'Hello {form.name.data}'
return render_template('index.html', form=form)
Création de formulaires sécurisés
Opérations avancées
Connexion à une base de données avec Flask-SQLAlchemy
from flask_sqlalchemy import SQLAlchemy
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///example.db'
db = SQLAlchemy(app)
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(80), unique=True, nullable=False)
@app.route('/add_user/<username>')
def add_user(username):
new_user = User(username=username)
db.session.add(new_user)
db.session.commit()
return 'User added'
Utilisation de l'ORM SQLAlchemy
Middleware personnalisé
from flask import Flask, request
app = Flask(__name__)
@app.before_request
def before_request():
print('Before request')
@app.after_request
def after_request(response):
print('After request')
return response
@app.route('/')
def index():
return 'Hello'
Création de middleware pour les traitements avant et après les requêtes
Debugging & outils
Utilisation du debugger intégré
app.run(debug=True)
Activer le mode debug pour le débogage
Panneau d'outils Flask-Debugtoolbar
pip install Flask-DebugToolbar
from flask_debugtoolbar import DebugToolbarExtension
app.config['DEBUG_TB_INTERCEPT_REDIRECTS'] = False
toolbar = DebugToolbarExtension(app)
Ajouter des outils de débogage pour les développeurs
Profiling avec Flask-Profiler
pip install Flask-Profiler
from flask_profiler import Profiler
@app.route('/')
@profiler.profile()
def index():
return 'Hello'
Analyser le rendu et la performance des vues