Python 的 ​ORM(Object-Relational Mapping)工具浅讲

SQLAlchemy相关讲解

1. SQLAlchemy 是什么?

  • ​定义:一个 Python 的 ​ORM(Object-Relational Mapping)工具,允许开发者通过 Python 类与对象操作数据库,而非直接编写 SQL。
  • ​核心组件:
    • ​Core:底层 SQL 表达式语言,提供数据库无关的 SQL 操作接口。
    • ​ORM:基于 Core 的高层抽象,将数据库表映射为 Python 类(模型),记录映射为对象。
  • ​适用场景:
    • 需要灵活操作数据库的 Python 应用。
    • 希望避免 SQL 注入攻击。
    • 需要跨数据库兼容(如 SQLite、MySQL、PostgreSQL)

2. 核心概念

2.1 模型

​定义:通过 Python 类表示数据库表

2.2 会话(Session)

  • ​作用:管理数据库操作的上下文,负责事务提交、回滚和对象状态跟踪
  • 生命周期:
    • 创建会话:session = Session(engine)
    • 操作数据:增删改查。
    • 提交或回滚:session.commit() 或 session.rollback()
    • 关闭会话:session.close()

2.3 引擎(Engine)

  • 作用:连接数据库的核心接口,管理连接池。
  • ​创建方式:
from sqlalchemy import create_engine
engine = create_engine('sqlite:///data.db')

3. 基本操作

3.1 创建记录

new_user = User(name="Alice", email="alice@example.com")
session.add(new_user)
session.commit()

3.2 查询记录

  • 简单查询
user = session.query(User).filter_by(name='Alice').first()
  • ​复杂查询​(使用 SQL 表达式):
from sqlalchemy import or_
users = session.query(User).filter(
    or_(User.name 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Code_Geo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值