SQLAIchemy 定义模型类
定义模型类
这种模型类结构称为声明性映射,它同时定义了 Python 对象模型,以及描述的数据库元数据 在特定
数据库中存在或将要存在的真实 数据库 表。
映射从一个基类开始,并且是 通过对类的继承来创建一个简单的子类。这里的父类是:Base 模型类。
1、定义模型
# 定义所有模型的父类 class Base(DeclarativeBase): """每一种表都拥有的字段映射""" create_time: Mapped[datetime] = mapped_column(insert_default=func.now(), com update_time: Mapped[datetime] = mapped_column(insert_default=func.now(), onu comment='记录最近修改的时间')
# 枚举类 class SexValue(enum.Enum): MALE = '男' FEMALE = '女'
# 定义员工模型类 class Employee(Base): """员工的模型类""" __tablename__ = 't_emp' # id属性, 字段。主键,自增 id: Mapped[int] = mapped_column(primary_key=True, autoincrement=True) name: Mapped[str] = mapped_column(String(20), unique=True, nullable=False) # DECIMAL(10, 2) ,10代表总位数,2代表小数点的位数。 sal: Mapped[Decimal] = mapped_column(DECIMAL(10, 2), nullable=True, comment= bonus: Mapped[Optional[int]] = mapped_column(SmallInteger, default=0, commen entry_date: Mapped[date] = mapped_column(insert_default=func.now(), comment= is_leave: Mapped[bool] = mapped_column(Boolean, default=False) gender: Mapped[SexValue]


engine负责数据库迁移
# 所有的表都重新创建 Base.metadata.drop_all(engine) Base.metadata.create_all(engine) # 单独把某个表创建一下 Employee.__table__.drop(engine) Employee.__table__.create(engine)

浙公网安备 33010602011771号