SQLAlchemy 通讯录

from sqlalchemy import create_engine, Integer, String, select, delete
from sqlalchemy.orm import DeclarativeBase, Mapped, mapped_column, Session

class Base(DeclarativeBase):
pass

class Contact(Base):
tablename = "contacts"

id: Mapped[int] = mapped_column(Integer, primary_key=True, autoincrement=True)
name: Mapped[str] = mapped_column(String)
email: Mapped[str] = mapped_column(String)

engine = create_engine("sqlite:///contacts.db")
Base.metadata.create_all(engine)

with Session(engine) as session:
session.execute(delete(Contact))
session.add_all([
Contact(name="张三", email="zhangsan@example.com"),
Contact(name="李四", email="lisi@example.com"),
Contact(name="王五", email="wangwu@example.com"),
])
session.commit()

with Session(engine) as session:
contacts = session.scalars(select(Contact).order_by(Contact.id))
for contact in contacts:
print(f"{contact.id}. {contact.name} <{contact.email}>")

posted @ 2026-06-15 15:04  呵哈哈哈哈  阅读(2)  评论(0)    收藏  举报