WTF表单

2018-12-01  本文已影响0人  菜田的守望者w

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__)

app.secret_key = 'itheima'

"""

目的:实现一个简单的登录的逻辑处理

1.路由需要GET和POST两种请求方式-->需要判断请求方式

2。获取请求的参数

3.判断参数是否填写&密码是否相同

4。如果判断都没有问题,就返回一个success

"""

"""

给模板转递消息

flash-->需要对内容加密,因此需要设置secret_key,做加密消息的混淆

模板中需要遍历消息

"""

"""

使用WTF实现表单

自定义表单类

"""

class LoginForm(FlaskForm):

    username = StringField(u'用户名',validators=[DataRequired()])

    password = PasswordField(u'密码',validators=[DataRequired()])

    password2 = PasswordField(u'确认密码', validators=[DataRequired(),EqualTo('passworld', '密码不一致')])

    submit = SubmitField(u'提交')

@app.route('/form', 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')

        print(username)

        # 3.验证参数,WTF可以一句话就实现所有校验

    # 我们没有csrf_token

        if login_form.validate_on_submit():

            print(username,password)

            return 'success'

        else:

            flash(u'参数有错误')

    return render_template('index.html', form=login_form)

@app.route('/', methods=['GET,POST'])

def hello_world():

    # request:请求对象-->获取请求方式,数据

    # 判断请求方式

    if request.method == 'POST':

        # 2.获取请求参数

        username = request.form.get('username')

        print(username)

        # 3.判断参数是否填写&密码是否相同

        if not all(['username,password,password2']):

            flash(u'参数不完整')

        elif 'password' != 'password2':

            flash(u'密码不一致')

        else:

            return 'success'

    return render_template('index.html')

if __name__ == '__main__':

    app.run()

上一篇 下一篇

猜你喜欢

热点阅读