L’utilisation d’une relation one-to-many avec le framework Flask et le moteur de base de données SQLite est une pratique courante dans le développement d’applications web. Cette approche permet de modéliser des relations complexes entre des entités de données, ce qui est essentiel pour de nombreuses applications.
Dans le contexte de Flask et de SQLite, cela implique généralement la définition de modèles de données qui représentent les entités et leurs relations, ainsi que l’utilisation d’opérations CRUD (Create, Read, Update, Delete) pour interagir avec ces données.

La solution définitive pour raccourcir les liens et gérer vos campagnes digitales de manière professionnelle.
• Raccourcissement instantané et rapide des liens
• Pages de profil interactives
• Codes QR professionnels
• Analyses détaillées de vos performances digitales
• Et bien plus de fonctionnalités gratuites !
Commençons par définir ce qu’est une relation one-to-many. Dans ce type de relation, une entité d’un côté de la relation peut être associée à plusieurs entités de l’autre côté, mais chaque entité de l’autre côté est associée à une seule entité du premier côté. Par exemple, dans une application de gestion d’événements, un événement peut avoir plusieurs participants (one-to-many), mais chaque participant est lié à un seul événement.
Pour implémenter une telle relation avec Flask et SQLite, voici les étapes générales à suivre :
- Définir les modèles de données : Vous devez créer des classes Python qui représentent vos entités de données, en utilisant des bibliothèques telles que SQLAlchemy pour la gestion des modèles.
pythonfrom flask_sqlalchemy import SQLAlchemy
db = SQLAlchemy()
class Parent(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(255))
children = db.relationship('Child', backref='parent', lazy=True)
class Child(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(255))
parent_id = db.Column(db.Integer, db.ForeignKey('parent.id'), nullable=False)
- Configurer la base de données : Vous devez configurer votre application Flask pour qu’elle utilise SQLite et initialise la base de données.
pythonfrom flask import Flask
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///database.db'
db.init_app(app)
- Créer et migrer la base de données : Vous pouvez utiliser les commandes Flask-Migrate pour créer et gérer les migrations de base de données.
bashflask db init flask db migrate flask db upgrade
- Utiliser les opérations CRUD : Avec vos modèles définis, vous pouvez maintenant utiliser les opérations CRUD pour interagir avec les données.
python# Créer un parent
parent = Parent(name='Parent 1')
db.session.add(parent)
db.session.commit()
# Créer des enfants liés au parent
child1 = Child(name='Child 1', parent=parent)
child2 = Child(name='Child 2', parent=parent)
db.session.add_all([child1, child2])
db.session.commit()
# Lire les enfants d'un parent
children = parent.children
# Mettre à jour un enfant
child1.name = 'Updated Child 1'
db.session.commit()
# Supprimer un enfant
db.session.delete(child2)
db.session.commit()
En suivant ces étapes, vous pouvez mettre en place une relation one-to-many entre vos entités de données dans une application Flask utilisant SQLite comme moteur de base de données. Cela vous permettra de créer des applications web robustes et évolutives avec des relations de données complexes.
Plus de connaissances
Bien sûr, approfondissons davantage chaque étape pour mieux comprendre comment mettre en œuvre une relation one-to-many avec Flask et SQLite.
-
Définir les modèles de données :
Dans cette étape, nous utilisons SQLAlchemy, une bibliothèque ORM (Object-Relational Mapping) pour Python, pour définir nos modèles de données. Les modèles de données sont des classes Python qui représentent les tables dans notre base de données. Dans notre exemple, nous avons deux modèles :Parent
etChild
. La classeParent
a une relation one-to-many avec la classeChild
. La relation est définie par la colonneparent_id
dans la classeChild
qui fait référence à la clé primaireid
de la classeParent
, et par l’attributchildren
dans la classeParent
qui représente une liste des enfants associés à ce parent. -
Configurer la base de données :
Nous configurons notre application Flask pour utiliser SQLite comme moteur de base de données. Cela se fait en définissant la configurationSQLALCHEMY_DATABASE_URI
avec l’URL de connexion à la base de données SQLite. Nous initialisons également l’extension SQLAlchemy avec notre application Flask en appelantdb.init_app(app)
. -
Créer et migrer la base de données :
Nous utilisons Flask-Migrate, une extension Flask, pour gérer les migrations de base de données. Les migrations sont des scripts Python qui décrivent les changements apportés à la structure de la base de données au fil du temps. La première commandeflask db init
initialise le répertoire des migrations, la deuxième commandeflask db migrate
génère une migration basée sur les changements détectés dans les modèles, et la troisième commandeflask db upgrade
applique les migrations à la base de données. -
Utiliser les opérations CRUD :
Avec nos modèles de données définis et notre base de données configurée, nous pouvons maintenant utiliser les opérations CRUD pour interagir avec les données. Les opérations CRUD sont les opérations de base pour la manipulation des données : Create (Créer), Read (Lire), Update (Mettre à jour) et Delete (Supprimer). Dans notre exemple, nous avons montré comment créer un parent, créer des enfants liés à ce parent, lire les enfants d’un parent, mettre à jour un enfant et supprimer un enfant.
En suivant ces étapes, vous pouvez créer et gérer des relations one-to-many entre vos entités de données dans une application Flask utilisant SQLite comme moteur de base de données. Cela vous permet de développer des applications web robustes avec des fonctionnalités avancées de gestion de données.