Configurons Flask pour utiliser une petite base de données SQLite (parfait pour le dév, c'est juste un fichier).
1. Configuration (app.py)
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
# Où stocker la base ? (ici dans le fichier 'site.db' à la racine)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///site.db'
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False # Pour économiser des ressources
db = SQLAlchemy(app)
2. Créer un Modèle (Une Table)
Imaginons qu'on veut stocker des utilisateurs.
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(20), unique=True, nullable=False)
email = db.Column(db.String(120), unique=True, nullable=False)
password = db.Column(db.String(60), nullable=False)
# Méthode optionnelle pour afficher l'objet joliment dans la console
def __repr__(self):
return f"User('{self.username}', '{self.email}')"
Traduction :
primary_key=True: C'est l'identifiant unique (1, 2, 3...).String(20): Texte de 20 caractères max.unique=True: Pas de doublons autorisés.nullable=False: Obligatoire (ne peut pas être vide).
3. Créer la base physiquement
Pour l'instant, c'est juste du code. Il faut dire à Flask de créer le fichier site.db.
Ouvre un terminal python (tape python ou flask shell) :
>>> from app import app, db
>>> with app.app_context():
... db.create_all()
Boum ! Le fichier site.db est apparu.
Ton schéma est prêt.