FastAPI分页
项目描述
简介
fastapi-pagination
是一个 Python 库,旨在简化 FastAPI 应用程序中的分页。它提供了一系列实用函数和数据模型,以帮助您分页数据库查询并向客户端返回分页响应。
使用 fastapi-pagination
,您可以在 FastAPI 端点函数中轻松定义分页参数,并使用它们生成包含所需数据子集的分页响应。该库支持多种分页策略,包括基于游标的分页和基于页面的分页。
fastapi-pagination
基于流行的 fastapi
库构建,与各种 SQL 和 NoSQL 数据库框架兼容。它还支持 async/await 语法,并且与 Python 3.8 及更高版本兼容。
功能
- 简化 FastAPI 应用程序中的分页。
- 支持多种分页策略,包括基于游标的分页和基于页面的分页
- 与各种 SQL 和 NoSQL 数据库框架兼容,包括
SQLAlchemy
、Tortoise ORM
和PyMongo
。 - 支持 async/await 语法。
- 与 Python 3.8 及更高版本兼容。
有关如何使用 fastapi-pagination 的更多信息,请参阅 官方文档。
安装
pip install fastapi-pagination
快速入门
您只需将 Page
类用作端点的返回类型,并对要分页的数据调用 paginate
函数即可。
from fastapi import FastAPI
from pydantic import BaseModel, Field
# import all you need from fastapi-pagination
from fastapi_pagination import Page, add_pagination, paginate
app = FastAPI() # create FastAPI app
class UserOut(BaseModel): # define your model
name: str = Field(..., example="Steve")
surname: str = Field(..., example="Rogers")
users = [ # create some data
# ...
]
@app.get('/users')
async def get_users() -> Page[UserOut]: # use Page[UserOut] as return type annotation
return paginate(users) # use paginate function to paginate your data
add_pagination(app) # important! add pagination to your app
在处理数据库时,请小心,因为默认的 paginate
将需要将所有数据加载到内存中。
例如,如果您使用 SQLAlchemy
,您可以使用 fastapi_pagination.ext.sqlalchemy
模块中的 paginate
。
from sqlalchemy import select
from fastapi_pagination.ext.sqlalchemy import paginate
@app.get('/users')
def get_users(db: Session = Depends(get_db)) -> Page[UserOut]:
return paginate(db, select(User).order_by(User.created_at))
来自 Quickstart
的代码将生成以下 OpenAPI 模式
项目详情
关闭
哈希值 for fastapi_pagination-0.12.29-py3-none-any.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | c18e58c91cf7909490236ded4dae1326c68e286a0831de41ba1be170fb24f182 |
|
MD5 | 03638854c24c2109b2eb94a16bd0cc57 |
|
BLAKE2b-256 | 168f3a0ab35dcb73c8e93a7dc66ff0641bcc4af2a6b919ba21f3c1873c642f96 |