63 lines
1.6 KiB
Python
63 lines
1.6 KiB
Python
|
#!/usr/bin/python
|
|||
|
# -*- coding: utf-8 -*-
|
|||
|
# @version : 1.0
|
|||
|
# @Create Time : 2022/8/8 14:18
|
|||
|
# @File : dependencies.py
|
|||
|
# @IDE : PyCharm
|
|||
|
# @desc : 常用依赖项
|
|||
|
|
|||
|
"""
|
|||
|
类依赖项-官方文档:https://fastapi.tiangolo.com/zh/tutorial/dependencies/classes-as-dependencies/
|
|||
|
"""
|
|||
|
|
|||
|
from fastapi import Body
|
|||
|
import copy
|
|||
|
|
|||
|
|
|||
|
class QueryParams:
|
|||
|
|
|||
|
def __init__(self, params=None):
|
|||
|
if params:
|
|||
|
self.page = params.page
|
|||
|
self.limit = params.limit
|
|||
|
self.v_order = params.v_order
|
|||
|
self.v_order_field = params.v_order_field
|
|||
|
|
|||
|
def dict(self, exclude: list[str] = None) -> dict:
|
|||
|
result = copy.deepcopy(self.__dict__)
|
|||
|
if exclude:
|
|||
|
for item in exclude:
|
|||
|
try:
|
|||
|
del result[item]
|
|||
|
except KeyError:
|
|||
|
pass
|
|||
|
return result
|
|||
|
|
|||
|
def to_count(self, exclude: list[str] = None) -> dict:
|
|||
|
params = self.dict(exclude=exclude)
|
|||
|
del params["page"]
|
|||
|
del params["limit"]
|
|||
|
del params["v_order"]
|
|||
|
del params["v_order_field"]
|
|||
|
return params
|
|||
|
|
|||
|
|
|||
|
class Paging(QueryParams):
|
|||
|
"""
|
|||
|
列表分页
|
|||
|
"""
|
|||
|
def __init__(self, page: int = 1, limit: int = 10, v_order_field: str = None, v_order: str = None):
|
|||
|
super().__init__()
|
|||
|
self.page = page
|
|||
|
self.limit = limit
|
|||
|
self.v_order = v_order
|
|||
|
self.v_order_field = v_order_field
|
|||
|
|
|||
|
|
|||
|
class IdList:
|
|||
|
"""
|
|||
|
id 列表
|
|||
|
"""
|
|||
|
def __init__(self, ids: list[int] = Body(..., title="ID 列表")):
|
|||
|
self.ids = ids
|