且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

WTF 简介 | 学习笔记

更新时间:2022-09-06 18:14:43

开发者学堂课程【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

验证输入值不在可选列表中