前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Flask 学习-96.Flask-SQLAlchemy 判断查询结果是否存在的几种方式

Flask 学习-96.Flask-SQLAlchemy 判断查询结果是否存在的几种方式

作者头像
上海-悠悠
发布2023-01-03 13:37:40
1.1K0
发布2023-01-03 13:37:40
举报

前言

在查询的时候,经常需要先判断是否存在结果,再进行下一步操作。 这里总结了判断查询结果是否存在的几种方式

count() 统计个数

count()方法返回记录条数,使用示例

代码语言:javascript
复制
with app.app_context():  
    count = Students.query.filter(Students.name == 'yy').count()  
    if count > 0:  
        print('查询结果存在')  
    else:  
        print('查询结果不存')

one() 获取一个结果

当查询结果为0时,抛异常sqlalchemy.exc.NoResultFound 当查询结果为唯一时,返回该对象<Students(id='1', name='yy', fullname='yoyo')> 当查询结果为不止一个时,抛异常sqlalchemy.exc.MultipleResultsFound

代码语言:javascript
复制
with app.app_context():  
    res = Students.query.filter(Students.name == 'yy').one()  
    print(res) 
    # 查询结果唯一时,返回<Students(id='1', name='yy', fullname='yoyo')>

one_or_none()

当查询结果为0时,返回None 当查询结果为唯一时,返回该对象<Students(id='1', name='yy', fullname='yoyo')> 当查询结果为不止一个时,抛异常sqlalchemy.exc.MultipleResultsFound

代码语言:javascript
复制
with app.app_context():  
    res = Students.query.filter(Students.name == 'yy').one()  
    print(res) 
    # 查询结果唯一时,返回<Students(id='1', name='yy', fullname='yoyo')>

scalar()

功能同one_or_none() 一样 当查询结果为0时,返回None 当查询结果为唯一时,返回该对象<Students(id='1', name='yy', fullname='yoyo')> 当查询结果为不止一个时,抛异常sqlalchemy.exc.MultipleResultsFound

代码语言:javascript
复制
with app.app_context():  
    res = Students.query.filter(Students.name == 'yy').scalar()  
    print(res)

first() 第一个结果

first() 会从查询结果中返回第一个值,如果没有结果返回None 如果有一个或多个结果返回第一个值,不会抛异常,所以用first()判断是否有结果也很方便

代码语言:javascript
复制
with app.app_context():  
    obj = Students.query.filter(Students.name == 'yy')  
    if obj.first():  
        print("查询到结果")  
    else:  
        print("未查询到结果")

all() 全部

all()方法返回全部数据,返回的是一个list 如果没查询到数据,返回空的list[] 查询到结果返回list of obj 格式[<Students(id='1', name='yy', fullname='yoyo')>]

代码语言:javascript
复制
with app.app_context():  
    obj = Students.query.filter(Students.name == 'yy')  
    print(obj.all())
    # [<Students(id='1', name='yy', fullname='yoyo')>]
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-11-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 从零开始学自动化测试 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • count() 统计个数
  • one() 获取一个结果
  • one_or_none()
  • scalar()
  • first() 第一个结果
  • all() 全部
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档