Flask中表单处理(九)

       在Flask的应用程序中也提供了对表单的处理,对表单的处理需要安装第三方的库,安装的命令为:

                                                      pip  install flask-wtf 

安装成功后,这里以一个系统的注册为案例,来演示表单在flask框架里的应用。在应用表单前首先需要

导入对应的库,新创建forms的文件,改源码为:

#!/usr/bin/env python
# -*-coding:utf-8 -*-


from wtforms import  *
from wtforms.validators import  *

class RegisterForm(Form):
    username=StringField(validators=[
        Length(min=3,max=10,message='用户名长度是3位至10位之间')])
    password=StringField(validators=[
        Length(min=3,max=12,message='密码长度在3至13位之间')
    ])

 

在flask的应用程序中,导入forms的文件,见源码:

from flask import Flask,jsonify,request,render_template,url_for,redirect
from forms import  *

app = Flask(__name__)

@app.route('/index/')
def index():
    return 'Hello Flask!'

@app.route('/register/',methods=['GET','POST'])
def register():
    if request.method=='GET':
        return render_template('register.html')
    else:
        registerForm=RegisterForm(request.form)
        if registerForm.validate():
            return redirect(url_for(endpoint='index'))
        else:
            return False

if __name__ == '__main__':
    app.run(debug=True)

 

在这个案例中,对请求的表单做了处理,当然也可以使用表单来渲染模板文件,那么就需要在GET请求的时候

实例化RegisterForm,见修改后的源码:

@app.route('/register/',methods=['GET','POST'])
def register():
    if request.method=='GET':
        registerForm=RegisterForm(request.form)
        return render_template('register.html',registerForm=registerForm)
    else:
        registerForm=RegisterForm(request.form)
        if registerForm.validate():
            return redirect(url_for('index'))
        else:
            return False

 

见模板文件的源码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<center>
    <form action="" method="post">
        <p>
            用户名:{{ registerForm.username }}
        </p>
        <p>
            密码: {{ registerForm.password }}
        </p>
        <p>
            <input type="submit" value="提交">
        </p>
    </form>
</center>
</body>
</html>

 

posted @ 2019-07-07 10:13  无涯(WuYa)  阅读(187)  评论(0编辑  收藏  举报