# 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整合

浙公网安备 33010602011771号