Flask学习:根据WTF实现登录

htm页面:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>登录</title>
</head>
<body>
    <form method="post">
          {{form.csrf_token()}}
          {{form.username.label}}{{form.username}}
          {{form.password.label}}{{form.password}}
          {{form.password2.label}}{{form.password2}}
          {{form.submit}}
    </form>
</body>
</html>

Demo02:

from flask import Flask, render_template, request, flash
from flask_wtf import FlaskForm
from wtforms import StringField, PasswordField, SubmitField
from wtforms.validators import DataRequired, EqualTo

app = Flask(__name__)
# flash需要加密内容
app.secret_key = "test"


class LoginForm(FlaskForm):
    username = StringField(u"用户名:", validators=[DataRequired()])
    password = PasswordField(u"密码:", validators=[DataRequired()])
    password2 = PasswordField(u"确认密码:", validators=[DataRequired(), EqualTo("password", "密码不一致")])
    submit = SubmitField("提交")


@app.route("/", methods=["GET", "POST"])
def login():
    login_form = LoginForm()
    # 1.判断请求方式
    if request.method == "POST":
        # 2.获取请求参数
        username = request.form.get("username")
        password = request.form.get("password")
        password2 = request.form.get("password2")
        # 3.验证,通过WTF可以一句话就实现所有的校验
        if login_form.validate_on_submit():
            print(username, password, password2)
            return "登录成功"
        else:
            flash("参数有误")
    return render_template("login.html", form=login_form)


# 4.启动程序
if __name__ == '__main__':
    app.run()

测试效果:

原文地址:https://www.cnblogs.com/jumpkin1122/p/11876293.html