Home » Uncategorized » Define ORM in SQLAlchemy

Define ORM in SQLAlchemy

Contents

References

Define a Parent-Child Relationship

class Driver(db.Model):
  __tablename__ = 'drivers'
  id = db.Column(db.Integer, privary_key=True)
  ...
  vehicles = db.relationship('Vehicle', backref='driver' , lazy=True)

class Vehicle(db.Model):
  __tablename__ = 'vehicles'
  id = db.Column(db.Integer, privary_key=True)
  ...
  driver_id = db.Column(db.Integer, db.ForeignKey('drivers.id'), nullable=False)

Beachte: Die backref heisst driver, das der relevante Foreign Key jedoch driver_id!

Erklärungen

Option:Erklärung:
lazy=True (default)lazy loading
lazy=’select‘eager loading
db.ForeignKey(‚drivers.id)1. ACHTUNG: Tabellennamen benutzen, nicht den Entity-Namen (drivers.id‚, nicht ‚Driver.id‘)!
2. Datentypen von FK und dessen Ziel müssen übereinstimmen.
Weitere relationship Konfig-Optionen:
collection_class = …
cascade = …

See: SQLALchemy ORM Relationship Docs
Beispiele:
collection_class = list
cascade = ’save-update‘ # OR: all, delete-orphan


Hinterlasse einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert