首页 > 其他 > 详细

WTForm学习笔记

时间:2020-04-17 00:16:41      阅读:58      评论:0      收藏:0      [点我收藏+]

flask-WTF是对WTForms的再封装,使其更好更方便地适用于flask框架。WTForms表单的两个主要功能是验证用户提交数据的合法性和渲染模板。

安装:pip3 install flask-WTF

安装flask-WTF的时候也会自动把WTForms也安装了。

对于表单验证,如注册表单,要输入用户名,密码,重复密码,而且有很多规则限制,如长度,必须字母开头且包含数字字母下划线中的两种或以上等等,这时候就得在后端做很多逻辑判断,比较烦杂。WTForms可以帮我们来处理验证问题。

以下是注册表单的简单处理:

app.py:

 1 from flask import Flask,request,render_template
 2 from forms import RegisterForm,LoginForm
 3 app = Flask(__name__)
 4 
 5 @app.route(/)
 6 def hello_world():
 7     return "hello world"
 8 
 9 @app.route(/register,methods=[GET,POST])
10 def register():
11     if request.method == "GET":
12         return render_template(register.html)
13     else:
14         form = RegisterForm(request.form)
15         if form.validate():
16             return "注册成功!!"
17         else:
18             return return_err_message(register.html,form)
19 
20 
21 @app.route(/login,methods=[GET,POST])
22 def login():
23     if request.method == "GET":
24         return render_template(login.html)
25     else:
26         form = LoginForm(request.form)
27         if form.validate():
28             return "登录成功!!"
29         else:
30             return return_err_message(login.html,form)
31 
32 
33 def return_err_message(template,form):
34     print(form.errors)
35     err_message = list(form.errors.values())[0][0]
36     print(err_message)
37     content = {
38         err_message: err_message
39     }
40     return render_template(template, **content)
41 
42 
43 if __name__ == __main__:
44     app.run()

 

 

register.html:

 

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>register</title>
 6 </head>
 7 <body>
 8 <form action="" method="post">
 9     <table>
10         <tr>
11             <td>邮箱:</td>
12             <td><input type="text" name="email"></td>
13         </tr>
14         <tr>
15             <td>用户名:</td>
16             <td><input type="text" name="username"></td>
17         </tr>
18         <tr>
19             <td>密码:</td>
20             <td><input type="password" name="pwd"></td>
21         </tr>
22         <tr>
23             <td>重复密码:</td>
24             <td><input type="password" name="pwd_rep"></td>
25         </tr>
26         <tr>
27             <td>年龄:</td>
28             <td><input type="text" name="age"></td>
29         </tr>
30         <tr>
31             <td>手机号:</td>
32             <td><input type="text" name="phone"></td>
33         </tr>
34         <tr>
35             <td>主页:</td>
36             <td><input type="text" name="homepage"></td>
37         </tr>
38         <tr>
39             <td>UUID:</td>
40             <td><input type="text" name="uuid"></td>
41         </tr>
42         <tr>
43             <td></td>
44             <td><input type="submit" value="立即注册"></td>
45         </tr>
46     </table>
47     {% if err_message %}
48         <p style="color: red">{{ err_message }}</p>
49     {% endif %}
50 </form>
51 </body>
52 </html>

 

 

 实际页面:

技术分享图片

 

WTForm学习笔记

原文:https://www.cnblogs.com/wangyi0419/p/12710263.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!