Aller au contenu principal

3 formations sont désormais disponibles : Python, Flask et JS.

Aller au contenu principal

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.