Dans une application Flask utilisant une base de données SQLite et impliquant des relations one-to-many, la manipulation des éléments implique généralement plusieurs étapes. Les relations one-to-many signifient qu’un élément d’une table peut être associé à plusieurs éléments d’une autre table, mais chaque élément de la deuxième table est associé à un seul élément de la première table.
Pour effectuer des opérations de manipulation sur ces relations, nous allons d’abord concevoir notre base de données avec des tables appropriées, puis définir les modèles correspondants dans Flask pour représenter ces tables. Ensuite, nous pouvons utiliser les fonctionnalités de Flask-SQLAlchemy pour interagir avec ces modèles et effectuer des opérations CRUD (Create, Read, Update, Delete) sur la base de 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 !
Voici comment vous pouvez procéder :
1. Définir les modèles Flask-SQLAlchemy :
Supposons que vous ayez deux entités : une entité principale (one) et une entité associée (many). Par exemple, une entité « Utilisateur » et une entité « Publication » où un utilisateur peut avoir plusieurs publications.
pythonfrom flask import Flask
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///ma_base_de_donnees.db'
db = SQLAlchemy(app)
class Utilisateur(db.Model):
id = db.Column(db.Integer, primary_key=True)
nom = db.Column(db.String(100))
publications = db.relationship('Publication', backref='utilisateur', lazy=True)
class Publication(db.Model):
id = db.Column(db.Integer, primary_key=True)
titre = db.Column(db.String(100))
contenu = db.Column(db.Text)
utilisateur_id = db.Column(db.Integer, db.ForeignKey('utilisateur.id'), nullable=False)
2. Effectuer des opérations CRUD :
Création d’un nouvel utilisateur et de publications associées :
pythonutilisateur = Utilisateur(nom='Jean')
publication1 = Publication(titre='Première publication', contenu='Contenu de la première publication', utilisateur=utilisateur)
publication2 = Publication(titre='Deuxième publication', contenu='Contenu de la deuxième publication', utilisateur=utilisateur)
db.session.add(utilisateur)
db.session.add(publication1)
db.session.add(publication2)
db.session.commit()
Récupération des publications d’un utilisateur :
pythonutilisateur = Utilisateur.query.filter_by(nom='Jean').first()
publications = utilisateur.publications
for publication in publications:
print(publication.titre)
Mise à jour d’une publication :
pythonpublication = Publication.query.filter_by(titre='Première publication').first()
publication.contenu = 'Nouveau contenu de la première publication'
db.session.commit()
Suppression d’une publication :
pythonpublication = Publication.query.filter_by(titre='Deuxième publication').first()
db.session.delete(publication)
db.session.commit()
Ces exemples décrivent comment manipuler les éléments dans une relation one-to-many en utilisant Flask et SQLite. La clé de la réussite réside dans la conception appropriée de vos modèles et l’utilisation judicieuse des fonctionnalités fournies par Flask-SQLAlchemy pour interagir avec la base de données.
Plus de connaissances
Bien sûr, explorons plus en détail chaque étape de la manipulation des éléments dans une relation one-to-many avec Flask et SQLite.
1. Définition des modèles Flask-SQLAlchemy :
Dans notre exemple, nous avons deux modèles : Utilisateur
et Publication
.
-
Le modèle
Utilisateur
représente les utilisateurs de notre application. Chaque utilisateur peut avoir plusieurs publications, ce qui est défini par la relationpublications = db.relationship('Publication', backref='utilisateur', lazy=True)
. Cela permet d’accéder aux publications d’un utilisateur à partir de l’objetUtilisateur
. -
Le modèle
Publication
représente les publications faites par les utilisateurs. Il contient une clé étrangèreutilisateur_id
qui fait référence à l’ID de l’utilisateur qui a créé la publication.
2. Effectuer des opérations CRUD :
Création d’un nouvel utilisateur et de publications associées :
Nous créons un nouvel objet Utilisateur
et lui attribuons un nom. Ensuite, nous créons deux objets Publication
, en leur attribuant un titre, un contenu et en les associant à l’utilisateur nouvellement créé en utilisant la relation utilisateur
.
Récupération des publications d’un utilisateur :
Pour récupérer les publications d’un utilisateur spécifique, nous effectuons une requête pour trouver l’utilisateur par son nom, puis nous accédons à ses publications à travers la relation publications
. Cela nous donne une liste des publications associées à cet utilisateur, que nous pouvons ensuite parcourir et afficher.
Mise à jour d’une publication :
Pour mettre à jour une publication, nous effectuons d’abord une requête pour trouver la publication que nous voulons mettre à jour. Ensuite, nous modifions les attributs de cette publication comme nécessaire, puis nous commettons les changements à la base de données.
Suppression d’une publication :
Pour supprimer une publication, nous effectuons d’abord une requête pour la trouver, puis nous utilisons la méthode delete()
pour la marquer comme supprimée dans la session. Enfin, nous commettons les changements pour appliquer la suppression dans la base de données.
En résumé, la manipulation des éléments dans une relation one-to-many avec Flask et SQLite implique de définir des modèles appropriés, d’interagir avec ces modèles en utilisant les fonctionnalités de Flask-SQLAlchemy, et de gérer les opérations CRUD en conséquence. Cela offre une grande flexibilité dans la gestion des données de votre application et vous permet de créer des relations complexes entre les différentes entités de votre système.