• Flask 学习96.FlaskSQLAlchemy 判断查询结果是否存在的几种方式 上海


    前言

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

    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')>]
    
  • 相关阅读:
    P、NP、NPC、NPH问题介绍
    过河卒 bfs搜索
    对迪杰斯特拉算法的理解
    第七周
    周作业
    月考一
    第四周
    第三周
    第二周作业
    46期第一次作业
  • 原文地址:https://www.cnblogs.com/yoyoketang/p/16890680.html
Copyright © 2020-2023  润新知