from flask import Flask from flask_sqlalchemy import SQLAlchemy db = SQLAlchemy() class Shop(db.Model): __tablename__ = 'shops' id = db.Column(db.Integer, primary_key=True, index=True) name = db.Column(db.String(80), unique=True, index=True) products = db.relationship("Product", back_populates="shop", lazy='dynamic') def add_product(self, product): if self.id is None : # Le magasin doit exister en base avant d'ajouter un produit db.session.add(self) db.session.commit() product.shop_id = self.id db.session.add(product) db.session.commit() class Product(db.Model): __tablename__ = 'products' id = db.Column(db.Integer, primary_key=True, index=True) name = db.Column(db.String(80), unique=True, index=True) price = db.Column(db.Float(precision=2)) shop_id = db.Column(db.Integer, db.ForeignKey('shops.id'), unique=False, nullable=False) shop = db.relationship("Shop", back_populates="products") # Création de l'application # On utilise la variable __name__ pour définir le nom du module courant # comme root applicatif pour notre application flask app = Flask(__name__) # Le chemin vers la base SQLite est relatif au dossier de l'application flask app.config["SQLALCHEMY_DATABASE_URI"] = "sqlite:///database.db" # Initialiser l'application Flask par l'intermédiaire de l'extension db.init_app(app)