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

Posted 上海-悠悠

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Flask 学习-96.Flask-SQLAlchemy 判断查询结果是否存在的几种方式相关的知识,希望对你有一定的参考价值。

前言

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

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

以上是关于Flask 学习-96.Flask-SQLAlchemy 判断查询结果是否存在的几种方式的主要内容,如果未能解决你的问题,请参考以下文章

Flask学习总结

python--flask学习1

Flask学习-Flask app启动过程

flask框架的学习

Flask 学习-42.Flask-RESTX 快速入门

Python Flask教程学习03