【SQLAlchemy】如何定义ORM模型并映射到数据库?
创作时间:
2025-03-18 02:18:34
作者:
@小白创作中心
【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数据库操作的读者有所帮助。
热门推荐
轻松关闭手机震动:华为iPhone操作指南
新疆杏产业:168万吨产量背后的乡村振兴新路径
从选地到结果:一文精通杏树种植与管理技术
湿疹、皮炎、痱子,夏季皮肤病高发?教你如何高“疹”无忧
脚趾脱皮怎么办?这些方法帮你轻松应对
关注脚趾健康,从简单锻炼开始
牛蒡:降三高、护心养生,4种食谱让营养翻倍
中国学者引领内窥镜治疗腰突新突破,微创手术让患者更快康复
重庆近期最火徒步路线推荐:野温泉、文艺铁路任你选
生肖龙猪虎花钱如流水,十二生肖消费习惯大盘点
维生素B6:一把需要谨慎使用的“万能钥匙”
汽车三元催化器堵塞:原因分析与解决方案
赵大爷的教训:四高指标你了解多少?
四高调理新法:饮食也能降压降脂?
四神汤加薏仁山药:中医调理“四高”的养生新宠
芒果虽好,但这些人不能吃
芒果干食用注意事项:控制量,巧搭配
从大禹治水到溥仪退位:中国古代历史大事记
“过市招摇”是虚荣,“过眼云烟”是人生
十二生肖运势查询全攻略:在线工具、手机应用和传统方法
腊月十三:传统习俗与现代意义
黑芝麻酱真的能护心?专家揭秘
堆栈式结构与背面照度技术:CMOS传感器的两大突破
黑芝麻酱真的能增强免疫力?
六大类别、三级评选:中学出台校园之星评选方案
中国式应酬:酒桌社交技巧大揭秘
葡萄酒礼仪全攻略:从开瓶到品鉴,让你成为宴会上的优雅焦点
清洁到防晒:科学护肤的五大步骤与误区解析
热播剧里的古代宫女生活揭秘
揭秘古代宫女的真实生活:明代 vs 唐代