开发者学堂课程【Python Web 框架 Flask 快速入门:WTF 简介】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/603/detail/8792
使用 flask-wtf 实现表单
目录
一、 传统表单和 FLASK-WTF 实现表单模板
二、 自定义表单
一、传统表单和 FLASK-WTF 实现表单模板
1.在 HTML 页面中直接写 form 表单
模板
<form method="post">
<label>用户名:</label><input type="text" name="user name"=><br>
<label>密码:</label><input type="password" name="password"=><br>
<label>确认密码:</label><input type="password" name="password2" ><br>
<input type"=”submit" valu=”提交“><br>
{% for message in get_flashed_messages() %}
{{ message }}
{% endfor %}
</form>
2.使用 FLASK-WTF 实现表单
模板
<form method="post">
{#设置csrf_token#}
{{ form.csrf_token( ) }}
{{ form.username.label }}{{ form.username }}<br>
{{ form.password.label }}{{ form.password }}<br>
{{ form.password2.label }}{{ form.password2 }}<br>
{{ form.input }}<br>
</form>
二、自定义表单
1.#需要自定义一个表单类
class Registerform(Flaskform):
Username = StringField(“用户名:”
, validators=[DateRequired( )]})
Password = PasswordField(“密码:”
, validators=[DateRequired( )])
Password2 = PasswordField(“确认密码:”
, validators=[DateRequired( ), EqualTo(‘password’,
Input = SubmitField(“提交”)
根据模板,自己定下一个表单,把里面的数据取出来。例如,要写一个常规的字符串,就用“StringField” ,替代 <label> 用户名: </label><input type="text" name="user name"=><br> 这一行,
只要把表单创建、传进去之后,在模板当中就可以用这个“form”,把它的值取出来,然后写文本框,根据需求选择字段。
WTForms 支持的 HTML 标准字段
字段对象 |
说明 |
StringField |
文本字段 |
TextAreaField |
多行文本字段 |
PasswordField |
密码文本字段 |
HiddenField |
隐藏文件字段 |
DateField |
文本字段,值为datetime datetim文本格式 |
DateTimeField |
文本字段,值为datetime datetime文本格式 |
IntegerField |
文本字段,值为整数 |
DecimalField |
文本字段,值为decimal.Decimal |
FloatField |
文本字段,值为浮点数 |
BooleanField |
复选框,值为True和False |
RadioField |
一组单选项 |
SelectField |
下拉列表 |
SelectMutipleField |
下拉列表,可选择多个值 |
FileField |
文件上传字段 |
FLASK-WTF扩展来实现表单,只要把验证函数填写好,在代码中只要一句话就可以把验证全跑通。要验证函数,比如说 “DataRequired” , 意思就是数据是必须有的,不能为空。
WTForms 常用验证函数
验证函数 |
说明 |
DataRequired |
确保字段中有数据 |
EqualTo |
比较两个字段的值,常用于比较两次,密码输入 |
Length |
验证输入的字符串长度 |
NumberRange |
验证输入的值在数字范围内 |
URL |
验证URL |
AnyOf |
验证输入值在可选列表中 |
NoneOf |
验证输入值不在可选列表中 |