Un Blueprint est une "mini-application" Flask qui ne peut pas tourner toute seule, mais qui peut être greffée sur l'application principale.
Créer un Blueprint
Crée un dossier auth et un fichier auth/routes.py.
from flask import Blueprint, render_template
# 1. On définit le Blueprint
# 'auth_bp' est le nom interne utilisé par Flask pour les reverse URL (url_for)
auth_bp = Blueprint('auth_bp', __name__, template_folder='templates')
# 2. On attache des routes au Blueprint (et plus à 'app')
@auth_bp.route('/login')
def login():
return render_template('auth/login.html')
@auth_bp.route('/register')
def register():
return "Page d'inscription"
Enregistrer le Blueprint (app.py)
Maintenant, on retourne dans le fichier principal et on connecte les morceaux.
from flask import Flask
from auth.routes import auth_bp # On importe notre Blueprint
app = Flask(__name__)
# On l'enregistre avec un préfixe d'URL
app.register_blueprint(auth_bp, url_prefix='/auth')
Résultat :
- La fonction
loginsera accessible via/auth/login. - La fonction
registervia/auth/register.
url_for avec les Blueprints
⚠️ Attention ! Quand tu utilises url_for, tu dois maintenant préciser le nom du Blueprint.
- Avant :
url_for('login') - Après :
url_for('auth_bp.login')(NomDuBlueprint.NomDeLaFonction)
C'est propre, rangé, et facile à maintenir.