欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 旅游 > 【SQLAlChemy】如何定义ORM模型,如何映射到数据库?

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

2024/11/30 12:28:31 来源:https://blog.csdn.net/weixin_55818116/article/details/139549336  浏览:    关键词:【SQLAlChemy】如何定义ORM模型,如何映射到数据库?

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

创建 ORM 基类

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

from SqlAIchemy.LinkDB.main import engineBase = 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_incrementprimary 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()将模型映射到数据库中后,即使改变了模型的字段,也不会重新映射了。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com