Python Flask-SQLAlchemy 数据库操作详解
需积分: 50 137 浏览量
更新于2024-08-17
收藏 14.19MB PPT 举报
"数据库基本操作-Python-三大框架课件"
本资源主要涵盖了Python中Flask-SQLAlchemy框架关于数据库的基本操作,包括模型定义、数据插入、查询、更新和删除,以及模型之间的关联关系。Flask-SQLAlchemy是Flask框架的一个扩展,它简化了SQLAlchemy在Web应用中的使用。
首先,Flask-SQLAlchemy中的数据操作通过`db.session`进行管理。插入操作需要先将数据添加到会话中,然后调用`commit()`方法提交。例如,创建`Role`和`User`模型,这两个模型之间有一对多的关系,`Role`可以有多个`User`,而每个`User`只能属于一个`Role`。这种关系通过`db.relationship`来定义,`backref`参数用于在反向方向上建立引用。
查询操作是通过`query`对象完成的,可以返回表中的所有数据或通过过滤器进行精确查询。例如,可以使用`filter_by`、`filter`、`get`等方法进行不同类型的查询。此外,`first()`返回第一条记录,`all()`返回所有记录。
在模型定义时,需要指定表名、列名和数据类型,如`db.Column(db.Integer, primary_key=True)`表示整型主键,`db.relationship`定义关联关系。在实际应用中,可以使用`db.create_all()`创建所有定义的表,`db.drop_all()`删除所有表,`db.session.add()`和`db.session.commit()`用于添加和保存数据到数据库。
在关联关系中,`lazy`参数控制何时加载关联对象。设置为`'dynamic'`时,关联对象在实际需要时才加载,可以减少不必要的数据库交互,适用于大数据量的情况。例如,`role.users`返回一个查询对象,可以在其上进行更多的查询操作,如排序后再返回结果。
多对多关系通常需要一个中间表,如`registrations`,来存储两个模型之间的映射关系。`secondary`参数用于指定中间表,`backref`同样用于反向引用。
查询过滤器的示例包括`filter_by`(精确匹配)、`filter`(模糊匹配)、`endswith`(字符串结尾匹配)、`!=`(不等于)、`not_`(逻辑非)等。可以组合使用这些过滤器进行复杂查询。同时,可以使用`all()`、`first()`、`get()`等方法获取查询结果。
此外,还可以进行分页查询,通过`offset`和`limit`设置查询的起始位置和数量,实现数据的分页展示。
该资源提供了Flask-SQLAlchemy中数据库操作的详细指南,适合学习和参考Python Web开发中与数据库交互的基础知识。
132 浏览量
2018-11-11 上传
2019-07-29 上传
点击了解资源详情
2019-07-13 上传
2024-04-16 上传
2024-01-04 上传
2023-06-12 上传
2015-11-22 上传
永不放弃yes
- 粉丝: 913
- 资源: 2万+
最新资源
- FLASH四宝贝之-使用ActionScript.3.0组件.pdf
- Linux Appliance Design
- 研究论文 英文版 嵌入式系统方向 Embedded Systems Building Blocks.pdf
- 新东方英语词根词缀记忆大全(整理打印版)最有效的背单词方法.pdf
- PIC 单片机的C 语言编程
- 电脑超级技巧3000招
- 如何成为一位杰出的工程师.
- 嵌入式处理器中嵌入式ICE的设计
- C语言学习100例实例程序.pdf
- Linux系统指令大全
- 编程精粹Microsoft编写优质无错C程序秘诀
- C++语言课程设计任务书
- Shaderx3-Advanced-Rendering-With-Directx-and-Opengl-Shaderx
- ENC28J60中文手册
- RCNA锐捷命令大全
- c#教程 简单实用,入门级的指导书