Flask框架:掌握数据库过滤条件、外键及ORM操作
119 浏览量
更新于2024-08-31
收藏 303KB PDF 举报
本篇文章主要介绍了在Flask框架下,如何利用SQLAlchemy库进行数据库操作,特别是针对数据过滤条件、外键及其四种约束、表关系以及反向查询模型属性的学习。作者首先强调了过滤功能在数据提取中的重要性,并详细列举了在Python编程中常用的数据库过滤条件,包括:
1. **equals**:用于匹配完全相等的数据,例如 `filter(Article.title == 'example')`。
2. **not equals**:不等于操作,如 `filter(Article.price != 100)`。
3. **like**:模式匹配,用于模糊查询,如 `filter(Article.title.like('%Python%'))`。
4. **in**:用于列表或集合中的值匹配,如 `filter(Article.id.in_([1, 2, 3]))`。
5. **not in**:不在给定列表或集合中的值匹配,如 `filter(Article.category.notin_(['category1']))`。
6. **is null** 和 **is not null**:用于检查字段是否为空,如 `filter(Article.description.is_(None))`。
7. **and** 和 **or**:逻辑运算符,用于组合多个过滤条件,如 `filter(Article.status == 'active' and Article.created_at > '2022-01-01')`。
文章接着引入了数据库连接配置,使用了MySQL数据库,并通过`create_engine`创建数据库引擎,`declarative_base`创建一个基类来定义模型。在这里,`Article`类被定义为一个数据库模型,它有一个自增主键`id`、标题`title`(非空字符串)和价格`price`(浮点数)。`__repr__`和`__str__`方法提供了对象的简洁表示形式。
为了与数据库交互,作者使用了ORM(对象关系映射)技术,通过`sessionmaker`创建会话对象,进一步将模型映射到数据库中,调用`Base.metadata.create_all()`来在数据库中创建相应的表。
最后,文章提到了在实际应用中,可能需要进行反向查询,即根据模型属性来获取相关联的数据,这通常涉及一对多或一对一的关系。然而,这部分内容并未在提供的片段中详细阐述,但读者可以想象在Flask框架中,如果`Article`表中存在一个外键关联到另一个表(如评论表),可以通过查询`Article.comments`来获取与其相关的评论。
这篇文章深入浅出地讲解了Flask框架下如何利用SQLAlchemy进行数据库操作,以及在处理数据过滤、表关系和模型属性时的实用技巧。对于想要进一步提升数据库管理能力的开发者来说,这是一个很好的学习资源。
2555 浏览量
254 浏览量
233 浏览量
589 浏览量
136 浏览量
4407 浏览量
157 浏览量
130 浏览量
216 浏览量

weixin_38672794
- 粉丝: 5
最新资源
- JAD工具:Java反编译神器的实用教程
- Delphi多线程控件BmdThread_1.9的安装与测试指南
- Flash猜拳游戏源码分享 - 剪刀石头布
- Java编程课程中辐射监测任务1解析
- 深入探究ASP.NET同学录系统设计与实践
- Windows Server 2003双机热备技术实施教程
- 掌握kindeditor使用技巧,实例操作解析
- mimos:打造hapi生态系统的Mime数据库界面
- JqGrid在VS2010和MVC下的应用示例
- C#实现USB HID设备通信的方法及实例
- YangDiDi-bilibili.github.io网站CSS技术解析
- Eclipse贪吃蛇游戏插件简易安装指南
- MATLAB实现:非线性方程组的无导数解算器开发
- 揭秘:超级玛丽游戏源码的神秘面纱
- Scribd文档去划线解决方案及开发指南
- 单片机红外线控制数码管显示与蜂鸣器