Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| dev:python:flask:flask-sqlalchemy:relation_agregation [2025/07/22 15:23] – yoann | dev:python:flask:flask-sqlalchemy:relation_agregation [2025/07/22 15:31] (Version actuelle) – yoann | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| {{tag> | {{tag> | ||
| - | : | ||
| ====== Flask-SQLAlchemy : Définir une relation d' | ====== Flask-SQLAlchemy : Définir une relation d' | ||
| Ligne 32: | Ligne 31: | ||
| Ci-dessous une application minimale Flask mettant en œuvre le modèle de données. | Ci-dessous une application minimale Flask mettant en œuvre le modèle de données. | ||
| - | <code python [enable_line_numbers=" | + | <code python |
| from flask import Flask | from flask import Flask | ||
| from flask_sqlalchemy import SQLAlchemy | from flask_sqlalchemy import SQLAlchemy | ||
| + | |||
| db = SQLAlchemy() | db = SQLAlchemy() | ||
| - | + | ||
| + | |||
| class Warehouse(db.Model): | class Warehouse(db.Model): | ||
| __tablename__ = ' | __tablename__ = ' | ||
| id = db.Column(db.Integer, | id = db.Column(db.Integer, | ||
| name = db.Column(db.String(80), | name = db.Column(db.String(80), | ||
| - | # Association one-to-many | + | |
| - | packets = db.relationship(" | + | |
| - | + | ||
| + | |||
| class Packet(db.Model): | class Packet(db.Model): | ||
| __tablename__ = ' | __tablename__ = ' | ||
| Ligne 54: | Ligne 51: | ||
| recipient = db.Column(db.String(80)) | recipient = db.Column(db.String(80)) | ||
| warehouse_id = db.Column(db.Integer, | warehouse_id = db.Column(db.Integer, | ||
| + | warehouse = db.relationship(" | ||
| + | |||
| app = Flask(__name__) | app = Flask(__name__) | ||
| + | |||
| # Le chemin vers la base SQLite est relatif au dossier de l' | # Le chemin vers la base SQLite est relatif au dossier de l' | ||
| app.config[" | app.config[" | ||
| - | + | ||
| - | # Initialiser l' | + | # Initialiser l' |
| db.init_app(app) | db.init_app(app) | ||
| + | |||
| </ | </ | ||
| Deux point importants à relever : | Deux point importants à relever : | ||
| - | * À la ligne 21 on **définit la clé étrangère** avec l' | + | * À la ligne 19 on **définit la clé étrangère** avec l' |
| - | * À la ligne 12 on définit l' | + | * À la ligne 20 on définit l' |