fastapi-分页查询-FastAPIPagination
温馨提示: 读完本文大约需要 3 分钟;这是一篇技术类文章;需要对
fastapi
有一定的了解;代码部分横屏观看更佳。
前言
最近在使用FastApi为后端框架进行一个项目的开发,在FastApi
使用过程中,遇到了分页查询的问题,特此记录一下,以便以后查阅。
继续上一篇分页查询的文章,在上篇文章中,有读者跟我说分页查询有更好的方案,于是便查资料,将我查到的结果跟大家分享下。
本篇文章主要讲解 fastapi-pagination
这个 fastapi
的扩展库
fastapi-pagination初体验
按照官方文档先来个基础的使用方法:
from fastapi_pagination import Page, add_pagination, paginate@app.get("/cases", response_model=Page[case_schema.CaseSchemaDetail])
async def read_cases(db: SessionLocal = Depends(get_db)):"""查询用例列表:param db: db session:return:"""return paginate(case_crud.get_cases(db))add_pagination(app)
1.导入类和方法
在使用的时候,首先要导入类 Page
,方法:paginate
、add_pagination
2.在response_model处添加 Page
@app.get("/cases", response_model=Page[case_schema.CaseSchemaDetail])
3.在返回数据的地方加上 paginate
return paginate(case_crud.get_cases(db))
4. 最后不要忘记了加上 add_pagination
add_pagination(app)
这里注意:add_pagination
的引用需要在 Page
之后,我在试用的时候,放在了初始化app的后面:
app = FastAPI()
add_pagination(app)
结果就程序报错了,放在初始化 app
这个文件的最后就OK了
入参示例
curl -X 'GET' \'http://127.0.0.1:9000/cases?page=1&size=2' \-H 'accept: application/json'
在url地址后面加上两个查询参数即可:
- page
- size
返回示例
{"items": [{"id": 1,"name": "叫主产什其","case_level": "10","marks": null,"remark": null,"module_id": 2,"create_time": "2022-08-05T16:05:58","update_time": "2022-08-05T16:05:58"},{"id": 2,"name": "称农活上","case_level": "7","marks": null,"remark": null,"module_id": 2,"create_time": "2022-08-05T16:19:19","update_time": "2022-08-05T16:19:19"}],"total": 13,"page": 1,"size": 2
}
在返回参数中主要添加了几个参数:
total
: 统计总共查询出来结果的个数page
:页码size
:每页展示数据条数items
:查询数据结果对象
后记
这个类库做分页查询还是非常方便的。
存在一点疑问:我在写 crud
方法进行查询的时候是全部都查询出来,会不会有性能问题。
def get_cases(db: Session):"""查询用例列表:param db::return:"""return db.query(Case).all()
针对这个问题,我将继续查询资料,在下期文章中跟大家分享。
每日踩一坑,生活更轻松。
本期分享就到这里啦。祝君在测开之路上越走越顺,越走越远。
gzh: 测开工程师的烦恼
fastapi-分页查询-FastAPIPagination相关推荐
- [JAVA EE] JPA 查询用法:自定义查询,分页查询
项目已上传:https://codechina.csdn.net/qq_36286039/javaee 自定义查询 问题:内置的crud功能不满足需求时如何添加自定义查询? 几种自定义查询方法 方法命 ...
- jpa分页查询_spring data jpa 居然提供了这么多查询方式!
spring data jpa提供了多种查询方式,如下: 方法名称查询 继承Repository接口 测试代码 方法名称中支持的关键字(官方文档提供) 使用JPA命名查询 在User实体中定义jpql ...
- Oracle中分页查询语句
Oracle分页查询语句使我们最常用的语句之一,下面就为您介绍的Oracle分页查询语句的用法,如果您对此方面感兴趣的话,不妨一看. Oracle分页查询语句基本上可以按照本文给出的格式来进行套用. ...
- Castle ActiveRecord学习(四)延迟加载、分页查询、where条件
一.延迟加载 //用户发布的主题,一对多:Table:外键表:ColumnKey:外键:Lazy:延迟加载:Cascade:级联操作(级联删除)[HasMany(typeof(ThemeInfo), ...
- 【sql】实现分页查询
分页查询,以五条五条查询为例: 代码实现: select * from goods_list LIMIT 0 , 5; 从第0条开始,查询五条
- java中的分页 效率考虑_面试官:数据量很大,分页查询很慢,有什么优化方案?...
当需要从数据库查询的表有上万条记录的时候,一次性查询所有结果会变得很慢,特别是随着数据量的增加特别明显,这时需要使用分页查询.对于数据库分页查询,也有很多种方法和优化的点. 下面简单说一下我知道的一些 ...
- Oracle的分页查询
为什么80%的码农都做不了架构师?>>> 因为Oracle不像MySQL一样有limit函数来实现分页查找,oracle要实现分页查询可使用关键字rownum来处理.使用row ...
- mysql临时表如何分页查询慢_数据量很大,分页查询很慢,怎么优化?
作者:悠悠i,来源: http://uee.me/aVSnD 当需要从数据库查询的表有上万条记录的时候,一次性查询所有结果会变得很慢,特别是随着数据量的增加特别明显,这时需要使用分页查询.对于数据库分 ...
- SQL Server中的分页查询
分页查询很简单,具体代码如下: --分页查询--查询1-3行数据 select top 3 * from emp order by sal desc;--查询4-6行数据 select top 3 * ...
最新文章
- 90后清华女校友范楚楚获ACM 2020唯一博士论文奖!出任MIT助理教授后再摘桂冠
- 《CCNP ROUTE (642-902 )认证考试指南》一1.2 将考试主题与典型网络工程师的工作关联起来...
- python的常见矩阵除法_Python numpy矩阵处理运算工具用法汇总
- cf1552F. Telepanting
- Java注释是一个大错误
- mysql update nowait_mysql innodb之select for update nowait
- 又拍云刘平阳,理性竞争下的技术品牌提升之道
- Selenium UI 举例 getCssValue
- spark1.6 maven java_Spark+ECLIPSE+JAVA+MAVEN windows开发环境搭建及入门实例【附详细代码】...
- linux远程访问服务器
- 自动化测试元素定位“最佳实践”
- Sqlite3 ---------------用法
- [PMP]专题资源管理错题
- 现代软件工程_项目回顾模板
- 组网学习之什么是链路冗余(二)
- 支持向量机原理小结(3)——核方法和非线性支持向量机
- C++操作MySQL大量数据插入效率低下的解决方法
- JDR与JRE的区别
- 域名注册网站服务比较
- java生成chk文件_java web实现在线编辑word,并将word导出(一)