Skip to main content

A paginator based on fastapi and tortoise-orm

Reason this release was yanked:

project name invalid

Project description

这个是一个基于FastApi+tortoise-orm的查询集分页器

主要通过对QuerySet进行分页排序等进行操作,再对即将响应的数据进行序列化,相比较一些先序列化再分页的分页器,这个会更轻简快速。

一、介绍 该分页器主要分为三个块:Params、PagePydantic和pagination

  1. Params 前端传的参数,包括page(页数)、size(页面大小)和order_by(排序字段,选传)
  2. PagePydantic
    total: int          # 查询总数
    page: int
    size: int
    total_pages: int    # 总页数
    next: str           # 下页url
    previous: str       # 上页url

响应模型,即返回给前端的数据模型 2. pagination 分页操作,将查询集QuerySet进行分页或者排序等操作,然后在根据用户自定义的Pydantic进行序列化,最后返回分页后的数据

二、快速开始:

  1. install(安装)
    pip install fastapi_tortoise_pagination
    
  2. 使用
    class ForumArticle(models.Model):
        """论坛文章"""
        id = fields.IntField(pk=True)
        user = fields.ForeignKeyField("cp_model.User", on_delete=fields.CASCADE)
        title = fields.CharField(max_length=32, default='', null=True)  # 文章标题
        content = fields.TextField(default='', null=True, blank=True)  # 文章正文

    class ForumArticleSchema(
    pydantic_model_creator(ForumArticle,
                           name="ForumArticleSchema",
                           exclude=())
    ):
    pass


    class TestViewSet(BaseViewSet):
        model = ForumArticle
        schema = ForumArticleSchema
        pk_type = str
        views = {
        }

    @Action.get("/list",  response_model=PagePydantic[ForumArticleSchema],description="分页获取帖子列表")  #
    async def list(self, params: Params = Depends()):
        query_set = ForumArticle.filter(is_delete=0)
        return await pagination(pydantic_model=ForumArticleSchema, query_set=query_set, params=params)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

fastapi_tortoise_pagination-0.1.1.tar.gz (16.2 kB view details)

Uploaded Source

Built Distribution

File details

Details for the file fastapi_tortoise_pagination-0.1.1.tar.gz.

File metadata

File hashes

Hashes for fastapi_tortoise_pagination-0.1.1.tar.gz
Algorithm Hash digest
SHA256 783768d07b5ced9cb007c8725a3445cada853c8653ed101287c434985c926261
MD5 895d697f6283256185486844ef181397
BLAKE2b-256 ec5bb2c951f351e13cd7f48b9e6e2ed44c73c9f0b3074edeac81abedd3077b54

See more details on using hashes here.

File details

Details for the file fastapi_tortoise_pagination-0.1.1-py3-none-any.whl.

File metadata

File hashes

Hashes for fastapi_tortoise_pagination-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 f700b9cff261e4f0cb92b4a2abae061bf2a46337245f1bef5b33354585e055db
MD5 993476d2b40ec66ed68b6559e3bd1459
BLAKE2b-256 2b7930ca79fbd267a2cf2a369d7575f2f878a61da1f238d578cca270170e83c1

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page