【SQLAlchemy】如何定义ORM模型并映射到数据库?
创作时间:
作者:
@小白创作中心
【SQLAlchemy】如何定义ORM模型并映射到数据库?
引用
CSDN
1.
https://blog.csdn.net/weixin_55818116/article/details/139549336
在Python中使用SQLAlchemy进行数据库操作时,定义ORM(对象关系映射)模型是一个重要的步骤。本文将详细介绍如何使用SQLAlchemy定义ORM模型并将其映射到数据库中,包括创建基类、定义自定义类、创建属性以及建立和删除映射等关键步骤。
创建 ORM 基类
首先,我们需要使用declarative_base根据engine来创建一个 ORM 基类。
from sqlalchemy import create_engine
from sqlalchemy.ext.declarative import declarative_base
engine = create_engine('sqlite:///example.db')
Base = declarative_base()
创建自定义类
接下来,我们可以用上边定义的Base类来实现自己的 ORM 类。通过__tablename__类属性,可以指定这个模型映射到数据库中的表名。
# 继承 Base 类
class User(Base):
# 指定映射表名
__tablename__ = 'user'
创建属性
创建类中的属性来映射到表中的字段,所有需要映射到表中的属性都应该为Column类型。
from sqlalchemy import Column, Integer, String
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()将模型映射到数据库中后,即使改变了模型的字段,也不会重新映射了。
本文详细介绍了使用SQLAlchemy定义ORM模型并映射到数据库的基本步骤,希望对正在学习Python数据库操作的读者有所帮助。
热门推荐
家用漏电开关怎么选择?家用漏电开关标准参考介绍
心脏开胸手术全程详解:从术前准备到术后护理
心脏开胸手术全程详解:从术前准备到术后护理
无线鼠标蓝牙双模是什么意思?如何选择合适的双模鼠标?
那些个性简历怎么用word制作的
三清山旅游超全攻略:深度解锁人间仙境,轻松玩转世界自然遗产
平抛运动知识点总结:从基础概念到实际应用
DeepSeek给出的中国大学AI排行榜:清北港科,浙交港中文排前列
武汉历史文化古迹
短视频流行下的宣传片制作策略
草本植物四季都适合栽培吗
新京报AI研究院发布第二期AI大模型测评报告!五大维度实测
一文读懂各类汽车悬架系统
父母去世后城市户籍子女能不能继承农村宅基地?法院判了!
急性腹痛的处理方法
中邮证券:87家军工上市公司披露2024年业绩情况,24家业绩正增长
哪些因素影响心理咨询师证书的含金量?
淡奶的最佳替代品(乳制品和非乳制品选择)
德国汉学家夏玉婷:德国只有5个人研究商周考古,希望更多人认识盘龙城遗址
面粉检测标准及常规检测项目汇总
机油尺是冷车还是热车看
马自达CX-4保养手册:如何检查机油和更换滤清器
燃油催化器的作用是什么?
马桶调水位高低怎么调
已有人中招!北京疾控提醒:如有这些症状及时就医!
家居风水:罗汉松最佳种植位置解析
三种常见的土地纠纷解决方法
家中祖坟地被占用或老人去世后土地确权继承问题的法律解答
基于借贷合同的保理业务:法律实务与风险防范
怎么设置打印机为默认打印机?4个实用方法全解析