zoukankan      html  css  js  c++  java
  • Flask-WTF表单的使用

    使用flask的WTF表单

     1 #! /usr/bin/env python
     2 # *-* coding: utf-8 *-*
     3 
     4 from flask import Flask, render_template, request, flash, make_response
     5 from flask_wtf import FlaskForm
     6 from wtforms.fields import *
     7 from wtforms.validators import DataRequired, EqualTo
     8 
     9 app = Flask(__name__)
    10 # 开启session
    11 app.secret_key = "aasdfsdf"
    12 # app.config["SECRET_KEY"] = "abcd"
    13 app.config["WTF_CSRF_ENABLED"] = False
    14 
    15 
    16 @app.route('/')
    17 def hello_world():
    18     return 'Hello World!'
    19 
    20 
    21 class Login(FlaskForm):
    22     username = StringField(label="用户名", validators=[DataRequired("请输入用户名")])
    23     password = PasswordField(label="密码", validators=[DataRequired("请输入密码")])
    24     password2 = PasswordField(label="密码", validators=[DataRequired("请输入密码"), EqualTo('password', "密码输入不一致")])
    25     submit = SubmitField(label="提交")
    26 
    27 
    28 @app.route("/login", methods=["GET", "POST"])
    29 def login():
    30     login_form = Login()
    31     if request.method == 'POST':
    32         if login_form.validate_on_submit():
    33             username = request.form.get("username")
    34             password = request.form.get("password")
    35             password2 = request.form.get("password2")
    36             print(username, password, password2)
    37             # return make_response("success")
    38             return "success"
    39         else:
    40             print("error")
    41             flash("参数错误请重新输入")
    42             # return render_template("demo004.html", form=login_form)
    43 
    44     # else:
    45     #     print("get")
    46     #     return render_template("demo004.html", form=login_form)
    47     return render_template("demo004.html", form=login_form)
    48 
    49 
    50 # 定义根路由视图函数,生成表单对象,获取表单数据,进行表单数据验证
    51 @app.route('/demo2', methods=["get", "post"])
    52 def demo2():
    53     register_form = Login()
    54     # 验证表单
    55     if register_form.validate_on_submit():
    56         # 如果代码能走到这个地方,那么就代码表单中所有的数据都能验证成功
    57         username = request.form.get("username")
    58         password = request.form.get("password")
    59         password2 = request.form.get("password2")
    60         # 假装做注册操作
    61         print(username, password, password2)
    62         return "success"
    63     else:
    64         if request.method == "POST":
    65             flash("参数有误或者不完整")
    66 
    67     return render_template('demo004.html', form=register_form)
    68 
    69 
    70 if __name__ == '__main__':
    71     app.run(debug=True)
    WTF表单的使用
     1 <!DOCTYPE html>
     2 <html lang="en">
     3 <head>
     4     <meta charset="UTF-8">
     5     <title>Title</title>
     6 </head>
     7 <body>
     8 <form method="post">
     9     {{ form.username.label }}{{ form.username }}<br/>
    10     {{ form.password.label }}{{ form.password }}<br/>
    11     {{ form.password2.label }}{{ form.password2 }}<br/>
    12     {{ form.submit }}
    13 </form>
    14 
    15 {% for message in get_flashed_messages() %}
    16     {{ message }}
    17 {% endfor %}
    18 
    19 </body>
    20 </html>
    前端展示的代码
  • 相关阅读:
    [转]C#综合揭秘——Entity Framework 并发处理详解
    [转]AngularJS中$timeout和$interval的用法详解
    [转]ng-grid Auto / Dynamic Height
    [转]微信小程序之加载更多(分页加载)实例 —— 微信小程序实战系列(2)
    [转]MVC中几种常用ActionResult
    [转]wx.getUserInfo(OBJECT) 微信小程序 获取用户信息
    [转]HTTP请求中的form data和request payload的区别
    [转]微信小程序实现图片上传功能
    [转]Enabling CRUD Operations in ASP.NET Web API 1
    [转]bootstrap-datetimepicker 火狐浏览器报错
  • 原文地址:https://www.cnblogs.com/cerofang/p/9206520.html
Copyright © 2011-2022 走看看