跳转到主要内容

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_wbarnha-0.2.10.tar.gz (14.5 kB 查看散列值)

上传时间:

构建分布

fastapi_filters_wbarnha-0.2.10-py3-none-any.whl (18.5 kB 查看哈希值)

上传时间 Python 3

由以下支持