我之前用过 Django + DRF ,Django 的 Forms 和 DRF 的 Serializer 都很香,校验和处理数据
但是 Flask 有点让我发愁,手动用大量的 if 看起来费时费力,不太美观
有没有现成的第三方库可以用的,并且可以自定义抛出异常的类型并捕获
之前看过一些 FastAPI 用的 Pydantic 还有 Marshmallow
Pydantic 抛出的异常可能我不知道正确的打开方式,不太会用
比如说:
from enum import Enum
from pydantic import (
BaseModel,
Field,
)
class HolidayTypeEnum(str, Enum):
ANNUAL_LEAVE = "annual_leave"
SICK_LEAVE = "sick_leave"
class Holiday(BaseModel):
holiday_name: str = Field(..., description="请填写假期名称")
holiday_type: HolidayTypeEnum = Field(..., description="请填写假期类型")
data = {
"holiday_name": "年假",
"holiday_type": "annual_leave1",
}
holiday = Holiday(**data)
抛出的异常是:
pydantic.error_wrappers.ValidationError: 1 validation error for Holiday
holiday_type
value is not a valid enumeration member; permitted: 'annual_leave', 'sick_leave' (type=type_error.enum; enum_values=[, ])
如何提示给前端到底错在哪里(之前手动校验的时候,是可以直接抛出指定异常,比如说 raise ValueError("假期类型错误,只能为 XXX 、XXX"))
也许 Pydantic 是很好,但是我好像不太会用,有没有大佬有正确的打开方式,或者说其他可以拿来就用的第三方库
Enum, pydantic, holiday, flask