热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

关于Flask高级_WTForms介绍和基本使用

关于Flask高级_WTFor



Flask高级_WTForms介绍和基本使用


一.介绍



Flask-WTF是简化了WTForms操作的一个第三方库。WTForms表单 的两个主要功能是验证用户提交数据的合法性以及渲染模板。而 Flask-WTF还包括一些其他的功能:CSRF保护,文件上传等。


这个插件库主要有两个作用:


第一个是做表单验证,将用户提交上来的数据进行验证是否符合系 统要求。


第二个是做模版渲染。 (了解即可)


使用步骤:



  1. 自定义一个表单类,继承自wtforms.Form类。


  2. 定义好需要验证的字段,字段的名字必须和模版中那些需要验证的input标签的name属性值保持一 致。


  3. 在需要验证的字段上,需要指定好具体的数据类型。


  4. 在相关的字段上,指定验证器。


  5. 以后在视图函数中,只需要使用这个表单类的对象,并且把需要验证的数据,也就是request.form 传给这个表单类,再调用表单类对象.validate()方法进行,如果返回True,那么代表用户输入的数 据都是符合格式要求的,Flase则代表用户输入的数据是有问题的。如果验证失败了,那么可以通 过表单类对象.errors来获取具体的错误信息。



二.实例



html:

DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="token punctuation">">

<title>注册页面title>
head>
<body>
<form action="/register/" method="post">
<table>
<tr>
<th>用户名:th>
<td><input type="text"name="uname">td>
tr>
<tr>
<th>密码:th>
<td><input type="password"name="pwd">td>
tr>
<tr>
<th>确认密码:th>
<td><input type="password"name="pwd2">td>
tr>
<tr>
<td>td>
<td><input type="submit"value="注册">td>
tr>
table>
form>
body>
html>


py文件:

#coding=utf-8
from flask import Flask,request,render_template
from wtforms import Form,StringField
from wtforms.validators import Length,EqualTo
app = Flask(__name__)
@app.route('/')
def index():
return 'Hello~'
class registerForm(Form):
uname = StringField(validators=[Length(min=2,max=9,message='用户名的字符数量在1-9之间')])
pwd = StringField(validators=[Length(min=2,max=9)])
pwd2 = StringField(validators=[Length(min=2,max=9),EqualTo('pwd',message='两次输入的密码不一致!!!')])
@app.route('/register/',methods=['GET','POST'])
def register():
if request.method == 'GET':
return render_template('register.html')
else:
form = registerForm(request.form)
if form.validate():
return '验证成功!!!'
return f'验证失败!!!失败信息:{form.errors}'
if __name__ == '__main__':
app.run(debug=True)


注:



如果觉得笔记有些问题,麻烦在百忙之中在评论中指正,或提出建议!另外,如果觉得这份笔记对你有所帮助,麻烦动动发财的小手手点一波赞!



推荐阅读
author-avatar
yeyeye
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有