BaseCrud
BaseCrud¶
- FastAPICrud路由注册器基类
继承基类¶
派生子类¶
-
SQLModelCrud¶
-
其他ORM后端暂时未支持, SQLModel已经足够强大...
字段¶
schema_model¶
- 当前模型协议
schema_list¶
- 批量读取,数据项返回协议, 默认:
self.schema_model
schema_filter¶
- 批量读取, 过滤数据提交协议, 默认:
self.schema_model
schema_create¶
- 创建数据, 提交协议, 默认:
self.schema_model
schema_read¶
- 读取数据, 返回协议, 默认:
self.schema_model
schema_update¶
- 更新数据,提交协议, 默认:
self.schema_model
pk_name¶
- 当前模型主键字符串, 默认:
id. - 说明: 数据库表有且只能有一个自增加主键.(待拓展)
list_per_page_max¶
- 批量读取每页数据数量上限. 默认: None, 无限制.
route_list¶
- 批量读取路由函数. 支持同步/异步函数.
@property
def route_list(self)->Callable
route_read¶
- 单项/批量读取路由函数.支持同步/异步函数.
@property
def route_read(self)->Callable
route_create¶
- 单项/批量创建路由函数.支持同步/异步函数.
@property
def route_create(self)->Callable
route_update¶
- 单项/批量更新路由函数.支持同步/异步函数.
@property
def route_update(self)->Callable
route_delete¶
- 单项/批量删除路由函数.支持同步/异步函数.
@property
def route_delete(self)->Callable
方法:¶
has_list_permission¶
- 检查是否具有批量查询权限.
async def has_list_permission(self, request: Request, paginator: Optional[Paginator], filter: Optional[BaseModel],**kwargs) -> bool
has_read_permission¶
- 检查是否具有单项查询权限.
async def has_read_permission(self, request: Request, item_id: Optional[List[str]], **kwargs) -> bool
has_create_permission¶
- 检查是否具有创建数据权限.
async def has_create_permission(self, request: Request, obj: Optional[BaseModel], **kwargs) -> bool
has_update_permission¶
- 检查是否具有更新数据权限.
async def has_update_permission(self, request: Request, item_id: Optional[List[str]], obj: Optional[BaseModel],**kwargs) -> bool
has_delete_permission¶
- 检查是否具有删除数据查询权限.
async def has_delete_permission(self, request: Request, item_id: Optional[List[str]], **kwargs) -> bool:
return True
register_crud¶
- 注册Crud路由.
def register_crud(self,
schema_list: Type[BaseModel] = None,
schema_filter: Type[BaseModel] = None,
schema_create: Type[BaseModel] = None,
schema_read: Type[BaseModel] = None,
schema_update: Type[BaseModel] = None,
list_max_per_page: int = None,
depends_list: List[Depends] = None,
depends_read: List[Depends] = None,
depends_create: List[Depends] = None,
depends_update: List[Depends] = None,
depends_delete: List[Depends] = None
) -> "BaseCrud"