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>
    前端展示的代码
  • 相关阅读:
    windows 环境下在anaconda 3中安装python2和python3两个环境(python2和python3共存)
    python 中,如何在一个函数中调用另一个函数返回的多个值中的一个?
    Coursera 机器学习 第一周 学习笔记
    正则表达式 注释
    正则表达式 分组
    24_04SpringMVC实现文件上传及拦截器
    前端之CSS基础
    前端之html
    MySQL数据库实战之优酷
    数据库基础加练习
  • 原文地址:https://www.cnblogs.com/cerofang/p/9206520.html
Copyright © 2011-2022 走看看