【SQLAlChemy】如何定义ORM模型,如何映射到数据库?

定义ORM模型并映射到数据库

创建 ORM 基类

使用 declarative_base 根据 engine 来创建一个 ORM 基类。

from SqlAIchemy.LinkDB.main import engine

Base = declarative_base()

创建自定义类

用上边定义的 Base 类来实现自己的 ORM 类。

__tablename__ 类属性,可以用来指定这个模型映射到数据库中的表名。

# 继承 Base 类
class User(Base):
    # 指定映射表名
    __tablename__ = 'user'

创建属性

创建类中的属性来映射到表中的字段,所有需要映射到表中的属性都应该为 Column 类型。

class User(Base):
    __tablename__ = 'user'
    id = Column(Integer, primary_key=True)
    name = Column(String(50))
    age = Column(Integer)

建立映射

使用Base.metadata.create_all()来将模型映射到数据库中。

# 建立与数据库的映射
Base.metadata.create_all(engine)

生成的数据库表如下。


查看生成的 SQL 脚本。

create table user
(
    id   int auto_increment
        primary key,
    name varchar(50) null,
    age  int         null
);

删除映像

当对基类的属性进行更新时,需要重新生成数据库表,这是可以使用 drop_all()

# 删除与数据库的映射
Base.metadata.drop_all(engine)

Base.metadata.drop_all(engine) 的作用就是删除数据库中所有与 Base 相关联的表。

注意

  • declarative_base() 函数不接受位置参数。
  • 一旦使用Base.metadata.create_all()将模型映射到数据库中后,即使改变了模型的字段,也不会重新映射了。
  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值