跳转到主要内容

fastapi-filters

项目描述

logo

license test codecov downloads pypi black

介绍

fastapi-filters 是一个库,它为 FastAPI 应用程序提供过滤/排序功能。


安装

pip install fastapi-filters

快速入门

要创建过滤器,您需要使用 create_filters 函数手动定义它们,或者根据模型自动生成它们,使用 create_filters_from_model 函数。

from typing import List

from fastapi import FastAPI, Depends
from pydantic import BaseModel, Field

# import all you need from fastapi-filters
from fastapi_filters import create_filters, create_filters_from_model, FilterValues

app = FastAPI()  # create FastAPI app


class UserOut(BaseModel):  # define your model
    name: str = Field(..., example="Steve")
    surname: str = Field(..., example="Rogers")
    age: int = Field(..., example=102)


@app.get("/users")
async def get_users_manual_filters(
    # manually define filters
    filters: FilterValues = Depends(create_filters(name=str, surname=str, age=int)),
) -> List[UserOut]:
    pass


@app.get("/users")
async def get_users_auto_filters(
    # or automatically generate filters from pydantic model
    filters: FilterValues = Depends(create_filters_from_model(UserOut)),
) -> List[UserOut]:
    pass

目前,fastapi-filters 支持与 SQLAlchemy 的集成。

from fastapi_filters.ext.sqlalchemy import apply_filters


@app.get("/users")
async def get_users(
    db: AsyncSession = Depends(get_db),
    filters: FilterValues = Depends(create_filters_from_model(UserOut)),
) -> List[UserOut]:
    query = apply_filters(select(UserOut), filters)
    return (await db.scalars(query)).all()

项目详情


下载文件

下载适合您平台的应用程序。如果您不确定要选择哪个,请了解有关 安装包 的更多信息。

源分布

fastapi_filters-0.2.9.tar.gz (14.5 kB 查看哈希值)

上传时间:

构建分布

fastapi_filters-0.2.9-py3-none-any.whl (18.4 kB 查看哈希值)

上传时间 Python 3

由以下支持