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

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

作者头像
上海-悠悠
发布于 2023-01-03 05:37:40
发布于 2023-01-03 05:37:40
1.4K00
代码可运行
举报
运行总次数:0
代码可运行

前言

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

count() 统计个数

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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
代码运行次数:0
运行
AI代码解释
复制
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
代码运行次数:0
运行
AI代码解释
复制
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
代码运行次数:0
运行
AI代码解释
复制
with app.app_context():  
    res = Students.query.filter(Students.name == 'yy').scalar()  
    print(res)

first() 第一个结果

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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
代码运行次数:0
运行
AI代码解释
复制
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 删除。

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Flask 学习-14.Flask-SQLAlchemy ORM操作数据库增删改查
前言 SQLAlchemy采用简单的Python语言,提供高效和高性能的数据库访问,实现了完整的企业级持久模型。 它提供了SQL工具包和ORM(对象关系映射)工具,类似于Django 自带的 ORM 框架操作数据库。 创建模型 先创建模型 from flask import Flask, url_for, request, redirect, render_template from flask_sqlalchemy import SQLAlchemy app = Flask(__name__) # 设置
上海-悠悠
2022/08/29
8080
Flask 学习-14.Flask-SQLAlchemy ORM操作数据库增删改查
SQLAlchemy学习-2.query() 查询数据
前言 SQLAlchemy 使用 query() 方法查询数据 创建模型 接着前面一篇创建的模型 from sqlalchemy.ext.declarative import declarative_base from sqlalchemy import create_engine, Column, Integer, String # 拼接配置dialect + driver://username:passwor@host:port/database DB_URI = 'mysql+pymysql://
上海-悠悠
2022/07/19
2.7K0
Flask 学习-98.Flask-SQLAlchemy limit() 限制返回条数
获取结果的第一条数据,可以用first() 截取返回的前几天数据,可以用limit() 截图中间的几个数据用切片操作
上海-悠悠
2023/01/03
8590
SqlAlchemy 2.0 中文文档(十八)
本节介绍了有关加载列的其他选项。使用的映射包括将存储大字符串值的列,我们可能希望限制它们何时加载。
ApacheCN_飞龙
2024/06/26
3610
Flask 学习-85.Flask-SQLAlchemy 多个不确定条件查询
前言 在后台管理数据的时候,经常会有多个条件查询,查询参数可以是一个也可以是多个,如果没有查询参数就返回全部数据。 filter()和filter_by() 的使用 SQLAlchemy 使用query查询的时,可以使用filter()和filter_by() 过滤条件。 filter_by() 参数直接用属性名,比较用一个= filter() 参数 用类名.属性名,比较用 == 主要区别 模块 参数 大于(>)和小于(<) and、or、like、in_ filter_by() 直接用属性名,比较用= 不
上海-悠悠
2022/10/09
2.8K0
Flask 学习-78.Flask-SQLAlchemy 一对多关系
前言 一个人有多个收件地址,这就是一对多关系 一对多(one-to-many)关系 关系使用 relationship() 函数表示。然而外键必须用类 sqlalchemy.schema.ForeignKey 来单独声明: class Person(db.Model): id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(50)) addresses = db.relationship('Ad
上海-悠悠
2022/09/28
1.1K0
Flask 学习-78.Flask-SQLAlchemy 一对多关系
SQLAlchemy学习-8.query查找之filter()和filter_by()区别
前言 SQLAlchemy 使用query查询的时,可以使用filter()和filter_by() 过滤条件。 filter_by() 参数直接用属性名,比较用一个= filter() 参数 用类名.属性名,比较用 == filter_by() 语法 filter_by() 源码如下 def filter_by(self, **kwargs): r"""Apply the given filtering criterion to a copy of this :cl
上海-悠悠
2022/07/19
3.7K0
SQLAlchemy学习-1.环境准备与基础使用
前言 SQLAlchemy采用简单的Python语言,提供高效和高性能的数据库访问,实现了完整的企业级持久模型。 它提供了SQL工具包和ORM(对象关系映射)工具,类似于Django 自带的 ORM 框架操作数据库。 环境准备 基于python3.8环境,安装 sqlalchemy 和 pymysql pip3 install sqlalchemy==1.4.39 pip3 install pymysql==1.0.2 配置连接 连接数据库,需要使用到一些配置信息,组合成满足以下条件的字符串: dialec
上海-悠悠
2022/07/19
8380
SQLAlchemy学习-1.环境准备与基础使用
Flask-SQLAlchemy学习笔记
Flask-SQLAlchemy是一个Flask扩展,简化了在Flask应用中使用SQLAlchemy的操作,SQLAlchemy是一个强大的关系型数据库框架,支持多种数据库后台。其安装方式与其他扩展一样使用pip安装即可:pip install flask-sqlalchemy。 在Flask-SQLAlchemy中,指定使用何种数据库是通过URL来实现的,各种主流数据库引擎使用URL格式如下:
Tommonkey
2023/02/27
1.7K0
python【第十二篇下】操作MySQL数据库以及ORM之 sqlalchemy
  对象关系映射(英语:Object Relation Mapping,简称ORM,或O/RM,或O/R mapping),是一种程序技术,用于实现面向对象编程语言里不同类型系统的数据之间的转换。从效果上说,它其实是创建了一个可在编程语言里使用的“虚拟对象数据库”。
用户1432189
2018/09/05
2.3K0
python【第十二篇下】操作MySQL数据库以及ORM之 sqlalchemy
Flask 学习-19.配置管理flask_sqlalchemy 和 flask_migrate
前言 前面讲了项目中使用config.py 可以管理开发、生产、测试等环境的配置,这篇继续学习在项目中添加flask_sqlalchemy 和 flask_migrate 的配置 环境准备 先pip安装flask_sqlalchemy 和 flask_migrate pip install flask_sqlalchemy pip install flask_migrate flask_sqlalchemy是封装了sqlalchemy 实现 ORM 操作数据库,flask_migrate 模块可以实现数据迁
上海-悠悠
2022/09/02
7080
Flask 学习-19.配置管理flask_sqlalchemy 和 flask_migrate
Flask基础入门学习笔记2
描述:Flask 模型由于 Flask 默认并没有提供任何数据库操作的API,我们可以选择任何合适自己项目的数据库来使用,可以采用原生的语句实现也可以采用ORM框架(SQLAlchemy / MongoEngine 扩展库) 实现;
全栈工程师修炼指南
2022/09/29
3460
Flask基础入门学习笔记2
python3 + flask + sqlalchemy
FLASK_APP = test_sqlalchemy.py FLASK_ENV = development FLASK_DEBUG = 1 In folder /Users/autotest/PycharmProjects/python3_flask /Users/autotest/PycharmProjects/python3_flask/venv/bin/python /Applications/PyCharm.app/Contents/helpers/pydev/pydevd.py --module --multiproc --qt-support=auto --client 127.0.0.1 --port 55365 --file flask run pydev debugger: process 3089 is connecting
SingYi
2022/07/14
3760
python3 + flask + sqlalchemy
SqlAlchemy 2.0 中文文档(二十一)
本页包含了由 Python 生成的Query构造的文档,多年来这是与 SQLAlchemy ORM 一起使用时的唯一 SQL 接口。从版本 2.0 开始,现在采用的是全新的工作方式,其中与 Core 相同的select()构造对 ORM 同样有效,为构建查询提供了一致的接口。
ApacheCN_飞龙
2024/06/26
7110
Flask-SQLAlchemy
一.SQLAlchemy介绍 SQLAlchemy是一个基于Python实现的ORM框架。该框架建立在 DB API之上,使用关系对象映射进行数据库操作,简言之便是:将类和对象转换成SQL,然后使用数据API执行SQL并获取执行结果。 1 pip3 install sqlalchemy 组成部分: Engine,框架的引擎 Connection Pooling ,数据库连接池 Dialect,选择连接数据库的DB API种类 Schema/Types,架构和类型 SQL Ex
用户1214487
2018/01/24
5.5K0
Flask-SQLAlchemy
python flask web开发实战 DB flask-sqlalchemy
MySQL mysql://username:password@hostname/database Postgres postgresql://username:password@hostname/database SQLite(Unix) sqlite:////absolute/path/to/database SQLite(Windows) sqlite:///c:/absolute/path/to/database
用户5760343
2019/07/05
1.1K0
python flask web开发实战 DB flask-sqlalchemy
Flask中ORM框架之SQLAlchemy插件入门到弃坑
Step 2.Flask-SQLAlchemy 扩展配置: 描述: 需要使用Flask 的 app = Flask(__name__) 进行 SQLAlchemy 对象构建, 在开发过程中常常使用懒加载方法 init_app 方法进行扩展的加载使用;
全栈工程师修炼指南
2022/09/29
3.5K0
Flask中ORM框架之SQLAlchemy插件入门到弃坑
Flask 学习-12.Flask-SQLAlchemy 连接 mysql 数据库
前言 SQLAlchemy采用简单的Python语言,提供高效和高性能的数据库访问,实现了完整的企业级持久模型。SQLAlchemy 是目前python中最强大的 ORM框架, 功能全面。 Flask-SQLAlchemy 是一个为 Flask 应用插件,封装了SQLAlchemy,简化了操作,只需添加配置项就可以在Flask 项目中使用。 Flask-SQLAlchemy 环境准备 Flask 使用版本v2.2.2 先安装连接 mysql 驱动包 pymysql pip install pymysql 安
上海-悠悠
2022/08/29
4.5K0
Flask 学习-12.Flask-SQLAlchemy 连接 mysql 数据库
SQLAlchemy
SQLAlchemy是一个基于Python实现的ORM框架。该框架建立在 DB API之上,使用关系对象映射进行数据库操作,简言之便是:将类和对象转换成SQL,然后使用数据API执行SQL并获取执行结果。
小小咸鱼YwY
2020/06/19
3.3K0
Flask框架(五)之SQLAlchemy
SQLAlchemy是一个基于Python实现的ORM框架。该框架建立在 DB API之上,使用关系对象映射进行数据库操作,简言之便是:将类和对象转换成SQL,然后使用数据API执行SQL并获取执行结果。
GH
2020/03/19
3K0
相关推荐
Flask 学习-14.Flask-SQLAlchemy ORM操作数据库增删改查
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验