FastAPI 数据验证 Pydantic Flask 用 WTForms
使用 Flask WTFormsfromflaskimportFlask,render_template,requestfromwtformsimportForm,StringField,validators appFlask(__name__)# 1. 定义表单类classRegistrationForm(Form):usernameStringField(用户名,[validators.Length(min4,max25,message长度需在4-25之间),validators.DataRequired(message用户名不能为空)])emailStringField(邮箱,[validators.Email(message请输入有效的邮箱地址),validators.DataRequired(message邮箱不能为空)])app.route(/register,methods[GET,POST])defregister():formRegistrationForm(request.form)# 2. 手动绑定请求数据ifrequest.methodPOSTandform.validate():# 3. 手动验证# 4. 验证通过获取数据usernameform.username.data emailform.email.datareturnf用户{username}注册成功# 5. 渲染表单和错误信息returnrender_template(register.html,formform)使用 FastAPI PydanticfromfastapiimportFastAPIfrompydanticimportBaseModel,EmailStr,Field appFastAPI()# 1. 定义数据模型classUserRegistration(BaseModel):username:strField(...,min_length4,max_length25,description用户名)email:EmailStrField(...,description邮箱地址)# 2. 在路径操作函数中直接声明模型类型app.post(/register)asyncdefregister(user:UserRegistration):# FastAPI 自动完成绑定、解析和验证# 3. 验证通过直接使用return{message:f用户{user.username}注册成功}