首页 > 数据库 >Flask 学习-96.Flask-SQLAlchemy 判断查询结果是否存在的几种方式

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

时间:2022-11-14 22:26:54浏览次数:48  
标签:返回 SQLAlchemy 结果 Flask app 查询 Students print 96

前言

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

count() 统计个数

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

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

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

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

with app.app_context():  
    res = Students.query.filter(Students.name == 'yy').scalar()  
    print(res)

first()

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

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')>]

with app.app_context():  
	obj = Students.query.filter(Students.name == 'yy')  
	print(obj.all())
	# [<Students(id='1', name='yy', fullname='yoyo')>]

标签:返回,SQLAlchemy,结果,Flask,app,查询,Students,print,96
From: https://www.cnblogs.com/yoyoketang/p/16890680.html

相关文章

  • 巨蟒python全栈开发flask11项目开始3
    1.多玩具遥控&&websocket回锅2.绑定玩具时添加好友的最终逻辑3.消息&&好友列表4.chat聊天&&对话窗口 1.多玩具遥控&&websocket回锅app的4个隐藏需求: 回顾: 下面看一下上......
  • 巨蟒python全栈开发flask10 项目开始2
    1.websocket异常处理出现上图报错的原因是什么?原因是:websocket断开了,所以报错19行接收的msg是None值,所以报错.打开一个文件,点击发送音乐,出现上面的内容:客户端app发送......
  • 巨蟒python全栈开发flask9 项目开始1
    1.项目需求分析立项:Javis&&taisen(三个月全部,先模拟出一个玩具,硬件需要周期长一些)想法---需求分析:1.通过玩具与孩子实时进行沟通2.希望玩具的知识渊博3.......
  • 巨蟒python全栈开发flask7 语音识别升级版&&mongoDB
    1.web简陋版玩具首先,复制上一节课的内容,将其中的语音文件删除掉,放入三个文件,然后,我们需要在app写入下面的内容下图是需要修改的地方:  Recorder_ok.js是一个web录音......
  • 巨蟒python全栈开发flask1
    1.整体把握(1)路飞学城-RestAPI前后端分离开发DjangoVue.js-DRFDjangoRestFromwork-线上商城的经验(2)智能玩具-RestAPI前后端分离开发FlaskFlask......
  • Flask 学习-95.Flask-SQLAlchemy 查询今天当天的数据
    前言查询今天的数据,或者查询某一天的数据SQLDATE()function使我们能够从特定的历史或当前时间戳值访问日期值。DATE()函数Date()函数返回从传递的datetime表达式中提......
  • Flask框架:如何运用Ajax轮询动态绘图
    本文分享自华为云社区《​​Flask框架:运用Ajax轮询动态绘图​​》,作者:LyShark。Ajax是异步JavaScript和XML可用于前后端交互,在之前​​《Flask框架:运用Ajax实现数据交互》......
  • 2211-13 flask模板
    第3章:模板在一般的Web程序里,访问一个地址通常会返回一个包含各类信息的HTML页面。因为我们的程序是动态的,页面中的某些信息需要根据不同的情况来进行调整,比如对登录......
  • sqlalchemy的连接方式
    这是比较推荐的连接方式,基于threading.local实现的。#-*-coding:utf-8-*-fromsqlalchemyimportcreate_enginefromsqlalchemy.ormimportsessionmaker,sc......
  • sqlalchemy--m2m
    这一块先建个表,后面再讨论#-*-coding:utf-8-*-fromsqlalchemy.ext.declarativeimportdeclarative_basefromsqlalchemyimportcreate_engine,Column,String,......