大家在用 Flask 的时候,是如何校验数据的类型和值的?
我之前用过 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=[<HolidayTypeEnum.ANNUAL_LEAVE: 'annual_leave'>, <HolidayTypeEnum.SICK_LEAVE: 'sick_leave'>]) 如何提示给前端到底错在哪里(之前手动校验的时候,是可以直接抛出指定异常,比如说 raise ValueError("假期类型错误,只能为 XXX 、XXX"))
也许 Pydantic 是很好,但是我好像不太会用,有没有大佬有正确的打开方式,或者说其他可以拿来就用的第三方库
