Flask使用Flask-WTF表单,zookeeper面试内容

定义一个表单类

class LoginForm(FlaskForm):

定义一个文本框,提示信息为用户名,validators设置验证规则,参数是一个列表,可以添加多个验证函数,DataRequired不能为空验证函数

username = StringField(“用户名:”, validators=[validators.DataRequired()])

定义一个密码框

password = PasswordField(“密码:”, validators=[validators.DataRequired()])

定义一个提交按钮

submit = SubmitField(“提交”)

定义了一个登录的form表单,其中有输入用户名和密码的文本框和一个表单提交按钮。除了上面定义的字段和验证规则外,还有一些常用的字段和验证规则,如下表。

WTForms支持的HTML字段

| 字段类型 | 说明 |

| — | — |

| StringField | 文本字段 |

| TextAreaField | 多行文本字段 |

| PasswordField | 密码文本字段 |

| HiddenField | 隐藏文本字段 |

| DateField | 文本字段,值为datetime.date格式 |

| DateTimeField | 文本字段,值为datetime.datetime格式 |

| IntegerField | 文本字段,值为整数 |

| DecimalField | 文本字段,值为decimal.Decimal |

| FloatField | 文本字段,值为浮点数 |

| BooleanField | 复选框,值为True和False |

| RadioField | 一组单选框 |

| SelectField | 下拉列表 |

| SelectMultipleField | 下拉列表,可选择多个值 |

| FileField | 文件上传字段 |

| SubmitField | 表单提交按钮 |

| FormField | 把表单作为字段嵌入另一个表单 |

| FieldList | 一组指定类型的字段 |

WTForms验证函数

| 验证函数 | 说明 |

| — | — |

| Email | 验证电子邮件地址 |

| EqualTo | 比较两个字段的值;常用于要求输入两次密码进行确认的情况 |

| IPAddress | 验证IPv4网络地址 |

| Length | 验证输入字符串的长度 |

| NumberRange | 验证输入的值在数字返回内 |

| Optional | 无输入值时跳过其他验证函数 |

| DataRequired | 确保字段中有数据 |

| Regexp | 使用正则表达式验证输入值 |

| URL | 验证URL |

| AnyOf | 确保输入值在可选值列表中 |

| Non

《一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》

【docs.qq.com/doc/DSmxTbFJ1cmN1R2dB】 完整内容开源分享

eOf | 确保输入值不值可选值列表中 |

定义视图函数

定义一个视图函数,请求方式设置为GET和POST请求,请求跳转到表单页面,POST请求为表单提交请求,如果是PSOT请求,则输出接收到表单传递过来的内容。代码如下:

@app.route(’/login’, methods=[‘GET’, ‘POST’])

def login():

form = LoginForm()

if request.method == ‘POST’:

获取form表单提交过来的值

username = form.username.data

pwd = form.password.data

print(username, pwd, sep=’====’)

return render_template(“login.html”, form=form)

把表单类当做参数传递到表单页面。

渲染表单

把表单渲染为HTML文件,代码如下:

Title

{# label为表单类中定义此属性函数的第一个参数,如果需要添加样式,可以为字段指定id或class属性 #}

{{ form.username.label }}{{ form.username(id = ‘username’) }}

{{ form.password.label }}{{ form.password }}

{{ form.submit }}

上一篇:python测试开发django-182.jQuery重置form表单


下一篇:jenkins无需登录,查看测试任务结果,allure报告