当前位置: 首页 > news >正文

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_

相关文章:

  • Llinux安装MySQL教程
  • 数组连续和 - 华为OD统一考试(C卷)
  • python中的allure报告使用
  • 【Python3教程】Python3基础篇之函数
  • c语言基础编程入门练习题
  • 【Android】安卓原生应用播放背景音乐与音效(笔记)
  • LeetCode-两数之和
  • 虚拟机 | Ubuntu操作系统:su和sudo理解及如何处理忘记root密码
  • 前端样式库推广——TailwindCss
  • 清晰易懂的 Kotlin 安装与配置教程
  • 深入理解 Linux ALSA 音频架构:从入门到驱动开发
  • 2025.3.19总结
  • 【Qt】private槽函数可以被其他类中的信号连接
  • DeepSeek扫盲篇: V3 vs R1全面对比架构差异与蒸馏模型演进史
  • SSD目标检测算法的学习与实践
  • Ubuntu 软件仓库配置文件详解及详细注释
  • 7-2-10 简易连连看
  • Neo4j GDS-01-graph-data-science 图数据科学插件库概览
  • Ollama本地大模型-个性化AI:训练自己的风格模型和数据投喂打造专属智能体验
  • hexo+butterfly博客功能完善和美化(二)
  • 远如《月球背面》,近似你我内心
  • 中巡组在行动丨①震慑:这些地区有官员落马
  • 外国游客“在华扫货”热:“带空箱子到中国!”
  • 外交部:中方期待印巴巩固和延续停火势头,避免冲突再起
  • 撤制镇如何突破困境?欢迎订阅《澎湃城市报告》第23期
  • 警方通报男子地铁上拍视频致乘客恐慌受伤:列车运行一度延误,已行拘