Flask使用Flask-SQLAlchemy对数据库操作详解二(配置、表与表之间一对一、多对一、多对多关系及增删改查参数和代码详细总结)

news2024/9/23 13:18:15

在这里插入图片描述
前面接:Flask使用Flask-SQLAlchemy对数据库操作详解二(配置、表与表之间一对一、多对一、多对多关系及增删改查参数和代码详细总结)

文章目录

  • 4.增删改查操作
    • 4.1添加
      • 1. 使用`add()`方法添加新数据
      • 2. 使用`create()`方法创建新数据
    • 4.2 查询数据
      • 1. 查询所有记录
      • 2. 条件查询
      • 3. 排序查询
      • 4. 分页查询
    • 4.3更新数据
      • 1. 更新单个对象
      • 2. 批量更新
    • 4.4删除数据
      • 1. 删除单个对象
      • 2. 批量删除

4.增删改查操作

表的所有查询操作都是在query对象上进行操作,query对象还有其它的过滤器:

SQLAlchemy常用查询过滤器

过滤器说明
filter()把过滤器加到原查询上
filter_by()等值过滤器、指定特定值
limit()限制结果数量
offset()偏移查询结果
order_by()根据指定条件进行排序
group_by()根据指定条件进行分组

SQLAlchemy常用查询执行方法

方法说明
all()列表形式返回所有结果
first()返回第一个结果,如果没有,返回None
first()_or_404()返回第一个结果,没有就终止请求,返回404
get()根据主键返回结果,没有就返回None
get_or_404()根据主键返回结果,没有就终止请求,返回404
count()结果计数
paginate()返回一个paginate对象,包含指定范围的结果

4.1添加

1. 使用add()方法添加新数据

# 新增一条记录
user = User(username='test', email='test@example.com')
db.session.add(user)
db.session.commit()

2. 使用create()方法创建新数据

# 新增一条记录
user = User.create(username='test', email='test@example.com')

4.2 查询数据

在Flask-SQLAlchemy中,可以使用db.session对象的query()方法来查询数据。下面是一些常用的查询数据的方法:

1. 查询所有记录

# 查询所有记录
users = User.query.all()

2. 条件查询

# 条件查询
user = User.query.filter_by(username='test').first()

3. 排序查询

# 排序查询(升序)
users = User.query.order_by(User.username.desc()).all() #asc()升序

4. 分页查询

# 分页查询
#page:要显示的页数,从 1 开始计数。
#per_page:每页显示的记录数。
page = 1
per_page = 10
users = User.query.paginate(page=page, per_page=per_page)
print(users.items)      # 当前页的查询结果
print(users.page)       # 当前页数
print(users.pages)      # 总页数
print(users.total)      # 总记录数
print(users.per_page)   # 每页显示的记录数

#也可以这样分页查询
users = User.query.limit(10).offset(0).all()    # 第 1 页
users = User.query.limit(10).offset(10).all()   # 第 2 页
users = User.query.limit(10).offset(20).all()   # 第 3 页

4.3更新数据

在Flask-SQLAlchemy中,可以使用db.session对象的commit()方法来提交数据的修改。下面是一些常用的更新数据的方法:

1. 更新单个对象

# 更新单个对象
user = User.query.filter_by(username='test').first()
user.email = 'new_email@example.com'
db.session.commit()

2. 批量更新

# 批量更新
User.query.filter_by(username='test').update({'email': 'new_email@example.com'})
db.session.commit()

4.4删除数据

在Flask-SQLAlchemy中,可以使用db.session对象的delete()方法来删除数据。下面是一些常用的删除数据的方法:

1. 删除单个对象

# 删除单个对象
user = User.query.filter_by(username='test').first()
db.session.delete(user)
db.session.commit()

2. 批量删除

# 批量删除
User.query.filter_by(username='test').delete()
db.session.commit()

补充知识点
使用migrate对数据迁移

migrate=Migrate(app,db)
# flask db init 只执行一次生成文件目录
# flask db migrate
# flask db upgrade

Github练习示例:
https://blog.csdn.net/QH2107/article/details/130381365?spm=1001.2014.3001.5502
https://github.com/QHCV/Flask_Book_Manage
官方文档:
中文:http://www.pythondoc.com/flask-sqlalchemy/index.html
英文:https://flask-sqlalchemy.palletsprojects.com/en/3.0.x/

水平有限,如果有错误或者建议,可以在评论区交流一下。
相关文章推荐:
https://blog.csdn.net/QH2107/article/details/130450305?spm=1001.2014.3001.5502

希望有所帮助!喜欢就点个赞吧!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/488697.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ADAS/AD笔记之特斯拉Autopilot-HW3.0系统

摘要: 目前国内一般直接将高速NOA成为“L2”;因此,复杂度更高的城区NOA,就自然的映射到了“L2”。 一、概述: 特斯拉Autopilot系统首创了NOA这种淡化脱手/脱眼/脱脑(驾驶自动化程度)逻辑的功能…

电脑系统怎么选?Win?MacOS?Linux?

马上要学编程了,我们要学什么操作系统呢?是MacOS,还是Windows,或者是Linux或者其他!那我们今天就来说说MacOS系统和Windows系统的优缺点,也介绍一下其他的系统。让你心里有底! 1、Windows 首先当…

OpenShift 4 - 在 CI/CD Pipeline 中创建 KubeVirt 容器虚拟机 - 方法3

《OpenShift / RHEL / DevSecOps 汇总目录》 说明:本文已经在支持 OpenShift 4.12 的 OpenShift 环境中验证 文章目录 创建并运行 CI/CD Pipeline访问 VMPipeline 的 Task 解读 创建并运行 CI/CD Pipeline 执行命令,生成公钥-私钥对。 $ ssh-keygen$ l…

贪心法——最小生成树

问题描述&#xff1a; 最小生成树Time Limit: 2000 MSMemory Limit: 5000 KB Description 给定n(n<500)个顶点,以及E(E<20000)条边&#xff0c;计算最小生成树的权值.Input 第一行输入T表示有T组数据。每组数据第一行输入n、E&#xff0c;分别表示顶点数和边数. 接下…

2023年度国家自然科学基金项目申请初审结果公布~

2023年4月28日&#xff0c;国家自然科学基金委员会发布了《关于公布2023年度国家自然科学基金项目申请初审结果的通告》&#xff0c;2023年度国家自然科学基金项目申请初审结果公布&#xff01;2023年度项目申请集中接收期间&#xff0c;自然科学基金委共接收各类型项目申请304…

8年测试经验分享,15K的测试工程师需要掌握那些知识?

软件测试行业是随着软件产业的发展而兴起的一个重要领域&#xff0c;目前处于快速发展阶段。以下是软件测试行业的现状&#xff1a; 人才需求增长&#xff1a;随着互联网、移动互联网、物联网等新技术的不断发展&#xff0c;软件测试人才需求呈现出快速增长的趋势。越来越多的…

找高清无水印视频素材,就上这9个网站。

推荐几个我的视频素材库&#xff0c;有免费、收费、商用&#xff0c;希望对大家有帮助&#xff01; 1、菜鸟图库 https://www.sucai999.com/video.html?vNTYwNDUx 菜鸟图库可以找到设计、办公、图片、视频、音频等各种素材。视频素材就有上千个&#xff0c;全部都很高清&…

20.考虑用户舒适度的冷热电多能互补综合能源系统优化调度

说明书 MATLAB代码&#xff1a;考虑用户舒适度的冷热电多能互补综合能源系统优化调度 关键词&#xff1a;用户舒适度 综合能源 PMV 优化调度 参考文档&#xff1a;《冷热电气多能互补的微能源网鲁棒优化调度》基础模型加舒适度部分模型&#xff1b; 仿真平台&#xff1a;MA…

IBM停止招聘可被AI取代的职位;三星禁止员工使用ChatGPT;印象笔记官方AI免费课;清华美院AI绘画的高质量分享 | ShowMeAI日报

&#x1f440;日报&周刊合集 | &#x1f3a1;生产力工具与行业应用大全 | &#x1f9e1; 点赞关注评论拜托啦&#xff01; &#x1f916; 『IBM将停止招聘可被人工智能取代的职位』近8000名工人将被自动化取代 据彭博社报道&#xff0c;IBM首席执行官Arvind Krishna表示&am…

三、信号槽

三、信号槽 1.概念&#xff1a; 信号槽指的是信号函数与槽函数的连接&#xff0c;可以使用不同的对象通过信号槽连接在一起&#xff0c;从而实现对象之间的通信。 信号槽认为是对象之间的一种约定&#xff1a;如果.......&#xff0c;则....... 信号槽是Qt新增的特性&#xff…

五一2.74亿人倾巢而出,小长假到底去哪玩儿?

今天是五一劳动节小长假结束后&#xff0c;打工人上班的第一天。 今年的五一非比寻常&#xff0c;是三年口罩之后的第一个小长假&#xff0c;回家探亲的回家、出门玩的出门&#xff0c;据统计&#xff0c;今年五一劳动节5天小长假&#xff0c;累计有2.74亿人次在国内出游&…

Redis-周阳(17. Redis 分布式锁)学习笔记

上一篇 &#xff1a; 16.短信验证码 文章目录 1. 相关面试题2. Redis 搭建3. 编码实现分布式锁3.1 建 Model3.2 改 POM3.3 写 YML3.4 主启动3.5 业务类3.6 小测试 4. 上述案例存在问题及修改4.1 没有加单机版的锁4.2 分布式部署之后&#xff0c;单机版的锁失效4.3 出现异常时&a…

使用iServer的Web打印功能打印临时图层tempLayersSet资源

作者&#xff1a;Carlo 背景&#xff1a;最近很多小伙伴想要了解如何将临时图层资源打印输出为图片&#xff1f;其实&#xff0c;官网已发布的10.2.1版本以及11.1.0版本的iServer就已经支持该功能&#xff0c;我们可以通过下文的介绍来学习使用。 步骤一、生成一个临时图层资源…

【C生万物】 结构体篇

欢迎来到 Claffic 的博客 &#x1f49e;&#x1f49e;&#x1f49e; &#x1f449; 专栏&#xff1a;《C生万物 | 先来学C》&#x1f448; 前言&#xff1a; 这期继续C语言的学习&#xff0c;进行结构体的讲解&#xff0c;值得注意的是&#xf…

Java版企业电子招标采购系统源代码Spring Boot + 二次开发 + 前后端分离 构建企业电子招采平台之立项流程图

项目说明 随着公司的快速发展&#xff0c;企业人员和经营规模不断壮大&#xff0c;公司对内部招采管理的提升提出了更高的要求。在企业里建立一个公平、公开、公正的采购环境&#xff0c;最大限度控制采购成本至关重要。符合国家电子招投标法律法规及相关规范&#xff0c;以及…

SpringCloud------Eureka集群版整合生产(集群)以及消费(五)

SpringCloud------Eureka集群版整合生产以及消费&#xff08;五&#xff09; 集群避免单点故障的发生。 服务注册&#xff1a; 将服务信息注册进服务中心 服务发现&#xff1a; 从注册中心上获取服务信息 实质&#xff1a;存key服务名&#xff0c;取value调用地址 1.先启动eur…

STM32-IAP基本原理及应用 | ICP、IAP程序下载流程 | 程序执行流程 | 配置IAP到STM32F4xxx

目录 1.串口IAP介绍1.1STM32编程方式1.2STM32系列芯片系统存储器区域1.2.1 STM32F40x/41x1.2.2 STM32F42x/43x 1.3STM32启动模式选择1.4ICP下载流程1.5IAP下载流程1.6一般的程序执行流程1.7加入IAP之后程序运行程序1.8STM32复位后如何跳转到main函数1.9IAP升级应用程序过程 2.A…

复合查询 --- MySQL总结(三)

复合查询 文章目录 复合查询多表查询自连接子查询单行查询多行查询多列子查询合并查询 表内连和外连内连外连 多表查询 前面讲述的关于进行一个表的简单查询和关于时间函数的相关问题&#xff0c;下面要进行复合查询的相关内容。 这里要使用卡笛尔集的概率让两个表融合成为一个…

美国第十次加息 正面临史上最严重的债务危机 经济形势堪忧

美联储周三如期宣布加息25个基点&#xff0c;将联邦基金利率目标区间上调到5%至5.25%之间&#xff0c;这已是美联储自去年3月以来的第十次加息。 FOMC在声明中强调&#xff0c;美国第一季度经济活动温和扩张&#xff0c;近几个月新增就业岗位强劲&#xff0c;失业率依然处于低位…

WxGL应用实例:绘制点云

WxGL附带了几个工具函数&#xff0c;其中read_pcfile用来解析.ply和.pcd格式的点云文件&#xff0c;该函数返回一个PointCloudData类实例&#xff0c;包含以下属性&#xff1a; PointCloudData.ok - 数据是否可用&#xff0c;布尔型PointCloudData.info - 数据可用性说明&…