Kapitel 8. Die Sitzung und Ausnahmen verstehen

Diese Arbeit wurde mithilfe von KI übersetzt. Wir freuen uns über dein Feedback und deine Kommentare: translation-feedback@oreilly.com

Im vorherigen Kapitel haben wir viel mit der Session gearbeitet und alles vermieden, was zu einer Ausnahme führen könnte. In diesem Kapitel werden wir etwas mehr darüber erfahren, wie unsere Objekte und die SQLAlchemy-Sitzung zusammenspielen. Zum Abschluss dieses Kapitels führen wir absichtlich einige Aktionen falsch aus, damit wir sehen, welche Arten von Ausnahmen auftreten und wie wir darauf reagieren sollten. Beginnen wir damit, mehr über die Session zu erfahren. Zunächst richten wir eine In-Memory-SQLite-Datenbank mit den Tabellen aus Kapitel 6 ein:

from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker

engine = create_engine('sqlite:///:memory:')

Session = sessionmaker(bind=engine)

session = Session()

from datetime import datetime

from sqlalchemy import (Table, Column, Integer, Numeric, String, DateTime,
                        ForeignKey, Boolean)
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import relationship, backref


Base = declarative_base()


class Cookie(Base):
    __tablename__ = 'cookies'

    cookie_id = Column(Integer, primary_key=True)
    cookie_name = Column(String(50), index=True)
    cookie_recipe_url = Column(String(255))
    cookie_sku = Column(String(55))
    quantity = Column(Integer())
    unit_cost = Column(Numeric(12, 2))

    def __init__(self, name, recipe_url=None, sku=None

Get Essential SQLAlchemy, 2. Auflage now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.