# Flask-SQLAlchemy 完整学习大纲

第一章 ORM基础概念

1.1 什么是ORM
1.2 ORM核心原理(对象-表映射机制)
1.3 ORM与传统SQL操作的对比
1.4 常见ORM框架比较(SQLAlchemy vs Django ORM)


第二章 环境搭建与配置

2.1 安装依赖
 - flask-sqlalchemy
 - pymysql/mysqlclient
2.2 基础配置
 - 数据库连接字符串格式
 python  app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+pymysql://user:password@host/db'  
2.3 调试配置
 - SQLALCHEMY_ECHO调试日志
 - SQLALCHEMY_TRACK_MODIFICATIONS配置
2.4 多数据库支持配置
2.5 连接池配置
 - pool_size
 - max_overflow
 - pool_recycle


第三章 数据模型定义

3.1 基础模型定义
 - __tablename__声明
 - 继承db.Model
3.2 字段类型详解
 - Integer/SmallInteger
 - String(50)/Text
 - Boolean(存储为TINYINT(1))
 - DateTime/Date/Time
 - Float/Numeric(精度控制)
3.3 字段约束
 - primary_key
 - unique
 - index
 - nullable
3.4 默认值设置
 - default=datetime.now(注意无括号)
3.5 复杂字段类型
 - Enum枚举类型
 - JSON类型
3.6 表关系定义
 - 一对一关系(uselist=False)
 - 一对多关系(relationship+foreign key)
 - 多对多关系(关联表secondary)


第四章 数据库操作

4.1 表结构管理
 - db.create_all()
 - db.drop_all()
4.2 CRUD基础操作
 - 创建记录(add+commit)
 - 查询记录(get/first/all)
 - 更新记录(属性修改+commit)
 - 删除记录(delete+commit)
4.3 批量操作
 - bulk_save_objects批量插入
 - update批量更新
4.4 事务管理
 - 显式事务(begin/commit/rollback)
 - 自动提交配置
4.5 数据版本控制(可选)


第五章 查询方法

5.1 基础查询
 - filter基础过滤
 - filter_by快捷查询
5.2 运算符
 - ==, !=, >, <
 - like/in_/contains
5.3 组合查询
 - and_多条件与查询
 - or_多条件或查询
 - not_反向查询
5.4 关联查询
 - join实现表连接
 - 子查询(subquery)
5.5 聚合查询
 - count统计
 - sum求和
 - group_by分组
5.6 排序与分页
 - order_by多字段排序
 - limit/offset分页
 - paginate分页器对象


第六章 高级特性

6.1 混合属性(hybrid_property)
6.2 事件监听(before_insert/after_update)
6.3 多数据库路由
6.4 查询缓存策略
6.5 异步支持(2.0+版本)


第七章 原生SQL操作

7.1 执行原生查询
 - fetchone/fetchall
7.2 参数化查询
 - :param防注入写法
7.3 结果集处理
 - mappings转字典
7.4 存储过程调用


第八章 性能优化

8.1 查询优化技巧
 - select只取必要字段
 - 避免N+1查询(joinedload)
8.2 索引优化
 - 索引字段选择
 - 复合索引创建
8.3 连接池调优
8.4 缓存机制


第九章 项目实践

9.1 用户管理系统示例
 - 用户模型设计
 - 登录审计功能
9.2 电商系统示例
 - 商品-订单多对多关系
9.3 数据分析系统示例
 - 大数据量分页优化


第十章 扩展工具

10.1 Flask-Migrate数据库迁移
 - 安装与初始化
 - makemigrations生成迁移文件
 - upgrade执行迁移
10.2 数据库可视化工具
 - SQLAlchemy-Admin
 - Flask-Admin整合


posted @ 2025-03-26 15:43  千陌666  阅读(31)  评论(0)    收藏  举报