flask sqlalchemy基本操作(查询)

2023-11-11

查询语法

查询一般有两种写法,db.session.query 和 <模型类>.query.<过滤方法>

db.session.query:

#查询TestCase 模型类中id = 137 的数据
db.session.query(TestCase).filter(TestCase.id == 137).first() 

<模型类>.query.<过滤方法>

#查询TestCase 模型类中id = 137 的数据 

query2 = TestCase.query.filter(TestCase.id==137).first()

常用的过滤方法

 

常用的查询方法 

常用的查询操作符 

LIKE(模糊查询):

db.session.query(Note).filter(Note.body.like('%foo%'))
   
   

IN(包含):

db.session.query(Note).filter(Note.body.in_(['foo', 'bar', 'baz']))
   
   

NOT IN(不包含):

db.session.query(Note).filter(~Note.body.in_(['foo', 'bar', 'baz']))
   
   

AND(多个过滤条件):


   
   
  1. from sqlalchemy import and_
  2. CaseSuitMiddle.query. filter(and_(CaseSuitMiddle.plan_id == plan_id, CaseSuitMiddle.case_id == tc))
  3. # 或在filter()中加入多个表达式,使用逗号分隔
  4. filter(Note.body == 'foo', Note.title == 'FooBar')
  5. # 或叠加调用多个filter()/filter_by()方法
  6. filter(Note.body == 'foo'). filter(Note.title == 'FooBar')

OR:


   
   
  1. from sqlalchemy import or_
  2. filter(or_(Note.body == 'foo', Note.body == 'bar'))
  3. filter()方法相比,filter_by()方法更易于使用:
  4. Note.query.filter_by(body= 'SHAVE').first()

count查询

1.


   
   
  1. # 查询Note中title等于测试的数据总数
  2. db.session.query(Note). filter(Note.title== "测试").count()

2.进行优化后的func.count()函数: 无子查询,效率高


   
   
  1. from sqlalchemy import func
  2. #统计TestCase 中 run_state 等于pass 的数据总数
  3. case_pass_amount = db.session.query(func.count(TestCase. id)). filter(TestCase.run_state == 'pass').scalar()

with_entities()方法 指定某列并去重


   
   
  1. # 查询TestCase模型中test_interface_adree字段,过滤不为None的数据,然后with_entities去重test_interface_adree值
  2. test_interfaces = db.session.query(TestCase.test_interface_adree). filter(
  3. TestCase.test_interface_adree != None).with_entities(
  4. TestCase.test_interface_adree).distinct(). all()
  5. 打印出查询结果:
  6. [( '/organize/organize.organizeTree.do',), ( '/test/addUser',)]

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

flask sqlalchemy基本操作(查询) 的相关文章

  • 如何使用 pandas 选择所有非 NaN 列和非 NaN 最后一列?

    如果标题有点令人困惑 请原谅我 假设我有test h5 下面是使用读取该文件的结果df read hdf test h5 testdata 0 1 2 3 4 5 6 0 123 444 111 321 NaN NaN NaN 1 12 2
  • 静态文件配置不正确

    我已经在 Heroku 上部署了简单的博客应用程序 它运行在Django 1 8 4 我在静态文件方面遇到了一些问题 当打开我的应用程序时 我看到Application Error页面 所以我尝试调试它并发现当我提交到 Heroku 时它无
  • 如何在Python中的BeautifulSoup4中使用.next_sibling时忽略空行

    由于我想删除 html 网站中重复的占位符 因此我使用 BeautifulSoup 的 next sibling 运算符 只要重复项位于同一行 就可以正常工作 参见数据 但有时它们之间有一个空行 所以我希望 next sibling 忽略它
  • 在 Python 3 中动态导入模块的问题

    我遇到的情况是 在我的 Python 3 项目中 在运行时必须包含某些模块 我在用着importlib import module为了这 第二次更新 我确实找到了一种方法来做一些接近我想要的事情 一些额外的代码可能会使我的一些链接稍微偏离一
  • 有条件填写 pandas 数据框

    我有一个数据框df列中包含浮点值A 我想添加另一列B这样 B 0 A 0 for i gt 0 B i if np isnan A i then A i else Step3 B i if abs B i 1 A i B i 1 lt 0
  • Django 如何从 ManyToManyField 序列化并列出全部

    我正在使用 Django 1 9 1 开发移动应用程序后端 我实现了关注者模型 现在我想列出用户的所有关注者 但目前我不得不这样做 我还使用 Django Rest 框架 这是我的 UserProfile 模型 class UserProf
  • 使用opencv计算深度视差图

    我无法使用 opencv 从视差图计算深度 我知道两个立体图像中的距离是用以下公式计算的z baseline focal disparity p 但我不知道如何使用地图计算视差 我使用的代码如下 为我提供了两个图像的视差图 import n
  • 在 keras 中使用自定义张量流操作

    我在张量流中有一个脚本 其中包含自定义张量流操作 我想将代码移植到 keras 但我不确定如何在 keras 代码中调用自定义操作 我想在 keras 中使用tensorflow 所以到目前为止我发现的教程描述了与我想要的相反的内容 htt
  • Selenium:等到 WebElement 中的文本发生变化

    我在用着selenium使用Python 2 7 从网页上的搜索框检索内容 搜索框动态检索结果并在框本身中显示结果 from selenium import webdriver from selenium webdriver common
  • 在ansible中合并字典

    我目前正在构建一个使用 ansible 安装 PHP 的角色 并且在合并字典时遇到一些困难 我尝试了多种方法来做到这一点 但我无法让它像我想要的那样工作 A vars file my default values key value my
  • 如何使用python读取最后一行的特定位置

    我有一个太大的 txt 文件 并且有几行类似的行 如下所示 字1 字2 字3 字4 553 75 我对位置 4 值 感兴趣 即最后一行 553 75 我的文件文本 word1 word2 word3 word4 553 20 word1 w
  • InvalidArgumentException:消息:无效参数:“using”必须是字符串

    我对 python 很陌生 试图创建可重用的代码 当我尝试通过传递 Login 类下使用的所有参数来调用 test main py 中的 Login 类和函数 login user 时 我收到错误 InvalidArgumentExcept
  • 如何在 Python 中执行相当于预处理器指令的操作?

    有没有办法在 Python 中执行以下预处理器指令 if DEBUG lt do some code gt else lt do some other code gt endif There s debug 这是编译器预处理的特殊值 if
  • PyQt - 如何检查 QDialog 是否可见?

    我有个问题 我有这个代码 balls Ball for i in range 1 10 因此 当我说 Ball 时 这将在 QDialog 上绘制一个球 然后当这完成后 我正在移动球QDialog无限循环中 我想说类似的话while QDi
  • 网页抓取 - 如何识别网页上的主要内容

    给定一个新闻文章网页 来自任何主要新闻来源 例如时报或彭博社 我想识别该页面上的主要文章内容 并丢弃其他杂项元素 例如广告 菜单 侧边栏 用户评论 在大多数主要新闻网站上都可以使用的通用方法是什么 有哪些好的数据挖掘工具或库 最好是基于Py
  • psutil:测量特定进程的CPU使用率

    我正在尝试测量进程树的 cpu 使用率 目前获取进程 没有子进程 的 cpu usage 就可以了 但我得到了奇怪的结果 import psutil p psutil Process PID p cpu percent 还给我float g
  • 从 C 线程调用 Python 代码

    我对从 C 或 C 线程调用 Python 代码时如何确保线程安全感到非常困惑 The Python 文档 http docs python org c api init html non python created threads似乎是
  • 如何让你的精灵在pygame中跳跃

    目前我已经制作了一个平台游戏 可以左右移动我的角色 他从地上开始 关于如何让他跳的任何想法 因为我不明白 目前 如果我按住向上键 我的玩家精灵将连续向上移动 或者如果我按下它 我的玩家精灵将向上移动并保持向上 我想找个办法远离他 让我重新跌
  • 如何动态创建 Luigi 任务

    我正在为 Luigi Tasks 构建一个包装器 但遇到了一个障碍Register http luigi readthedocs io en stable modules luigi task register html Register该
  • python中匹配3个或更多相同的字符

    我正在尝试使用正则表达式在字符串中查找三个或更多相同的字符 例如 你好 不匹配 噢 会的 我尝试过做类似的事情 re compile 1 3 a zA Z re compile w 1 5 但似乎都不起作用 w 1 2 是您正在寻找的正则表

随机推荐

  • 性能测试连载 (10)-数据错误率分析

    概述 性能测试脚本跑完了之后 我们除了要收集瓶颈数据 还有分析错误数据 通常一套脚本跑完 错误类型不止一种 但是jmeter只会在聚合报告里面给出一个总体的错误率 错误率 jmeter里的错误率是如何统计的 在返回的数据里面 只要succe
  • Maven项目中出现红色波浪线的解决过程

    一 问题分类 对于Maven项目出现红色波浪线可以首先对报错情况进行分析 我遇到的两种表现形式 还有其他的形式 请多多指教 形式一 所用文件均出现红色波浪线 此问题可能是配置问题 形式二 maven项目 Plugins Dependenci
  • Element-Ui

    安装环境搭建 Element Ul是饿了么前端团队推出的一款基于Vue js 2 0 的桌面端UI框架 一套为开发者 设计师和产品经理准备的基于 Vue 2 0 的桌面端组件库 手机端有对应框架是Mint UI 中文文档 http elem
  • 蓝桥杯 奇数倍数

    蓝桥杯 奇数倍数 题目 请你找到最小的整数 X 同时满足 1 X 是 2019 的整倍数 2 X 的每一位数字都是奇数 思路 1 先找2019倍数 2 判断它的每一位是否是奇数 Java代码 public class 奇数倍数 public
  • 2022跨年烟花代码(一)Canvas绘制3D烟花动画特效

    Canvas绘制3D烟花动画特效 html代码
  • Knife4j+gateway动态路由聚合微服务API

    概述 knife4j的聚合API 其实官网有现成的例子 但包括其他能搜索到的资料都是基于静态网关的配置 我们现有的都是结合nacos实现动态网关配置 基于此留下这篇完整的教程文档 说明 本文假定你有一定的springcloud等相关知识 如
  • 树莓派安装配置syncthing

    下载 从这里下载软件 下载后解压 把二进制文件放到 usr local bin 目录 在命令行输入syncthing version命令 能打印出版本即可 自动启动 Unit Description Syncthing Open Sourc
  • struts2验证框架的两种方式

    第一种 在action同目录下建立 action validation xml
  • 关于JavaScript的浅拷贝和深拷贝

    关于JavaScript的浅拷贝和深拷贝 在 JS 中有一些基本类型像是Number String Boolean 而对象就是像这样的东西 name Larry skill Node js 对象跟基本类型最大的不同就在于他们的传值方式 基本
  • logging的使用python3

    以时间命名输出日志 def init logging t str time strftime Y m d H M time localtime filename log s txt t logging basicConfig level l
  • 刷题 3.10

    目录 1 约瑟夫环 蓝桥231 2 排它平方数 蓝桥712 3 买不到的数目 蓝桥213 思维题 思路 因为有解 两个数一定互质 不能拼成的最大数是xy x y 4 回文日期 1 约瑟夫环 蓝桥231 题目描述 n 个人的编号是 1 n 如
  • handsontable使用及遇到的坑--公式计算(思路)

    公式 公式的计算可使用堆栈的思想将运算符后置 如 C1 A1 A2 5 B1可以变换成 A1 A2 5 B1 计算过程为 假设A1 1 A2 2 B1 3 C1 A1 A2 5 B1 A1 A2 5 B1 1 2 5 3 3 5 3 15
  • 腾讯三面(hr面)之轻松过关

    腾讯二面之细节大曝光中最后提到 22号晚上11 00先后分别收到邮件 短信与电话通知 腾讯邀请你于4月23号16点到珞珈山国际酒店3楼2号会议室参加软件开发类面试 请携带简历提前5分钟到达 腾讯科技 23号上午 同样在旅馆查询资料 虽然很多
  • 【华为提前批】笔试 测评 面试 全流程(结构与材料工程师)

    目录 提前批流程 笔试 性格测试 专业面试1 2 主管面 终面 最后 祝各位旗开得胜 提前批流程 一般综合测评会在笔试之后发放 可选择之后再做 流程里面是安排在两轮技术面之后的 笔试 7 12 性格测试 7 14 专业面试1 7 24 专业
  • flutter 路由插件fluro配置及其使用

    flutter 路由插件fluro配置及其使用 pubspec yaml 引入插件 dependencies flutter sdk flutter fluro 1 6 3 1 首先创建一个router handler dart文件 定义路
  • 数据挖掘与机器学习——数据挖掘概述

    挖掘是从大量的 不完全的 有噪声的 模糊的 随机的应用数据中 提取潜在且有用的信息的过程 分析分析处理 On Line Analytical Processing OLAP 数据分析过程 确定知识发现的目标 确定知识发现的目的 数据采集 数
  • Segmentation简记-Joint shape learning and segmentation for medical images

    Segmentation简记 Joint shape learning and segmentation for medical images using a minimalistic deep network 创新点 1 In this
  • react中dispatch_在react中class和function组件调用dispatch的方式

    copy党的疑问 function Checklist dispatch list dataSource loading total page current function editHandler id values dispatch
  • 使用 System.Net.Mail.MailMessage 发送电子邮件

    从 NET 2 0 开始 引入了一个新的类 System Net Mail MailMessage 该类用来取代 NET 1 1 时代的 System Web Mail MailMessage 类 System Net Mail MailM
  • flask sqlalchemy基本操作(查询)

    查询语法 查询一般有两种写法 db session query 和 lt 模型类 gt query lt 过滤方法 gt db session query 查询TestCase 模型类中id 137 的数据 db session query