本文共 1722 字,大约阅读时间需要 5 分钟。
Web 表单是在任何一个 web 应用程序中最基本的一部分。我们将使用表单允许用户写文章,以及登录到应用程序中。
一个名为 Flask-WTF 的扩展,将 WTForms 集成到 flask 程序,可以帮助完成很多事情
表单类
表单的创建,可以通过继承从 Flask-WTF 导入的Form父类实现
from flask.ext.wtf import Form # 表单类,从第三方扩展的命名空间 导入
表单类中需要定义 属性/字段,值是字段类型类,就是将要在 HTML 中显示的表单各个字段,其实就是对 HTML 表单各种标签的包装
from wtforms import StringField, BooleanField, SubmitField, PasswordField, TextAreaField, SelectField # 字段类型类,字符串、布尔值、提交、密码、文本区域、选择框
验证器列表,检查用户填写表单时输入的内容是否符合我们的期望,有多个验证器时,需要同时通过验证
from wtforms.validators import DataRequired, Required, Length, Email , Regexp, EqualTo # 验证器,直接从 wtforms.validators 导入
如一个简单表单类:
#!/usr/bin/env python# -*- coding: utf-8 -*-# @Time : 2017/7/31 13:25# @File : form.pyfrom flask_wtf import Formfrom wtforms import StringField, PasswordField, BooleanField, SubmitFieldfrom wtforms.validators import Required, Length, Email#通过继承Form类实现class Form_d(Form): #对应html表单中的name字段,第二个参数为一个验证函数 name=StringField('name',validators=[Required()]) #对应html表单中的pwd字段,第二个参数为一个验证函数 pwd=StringField('pwd',validators=[Required()]) submit=SubmitField('submit')
简单表单登录验证:
from flask import Flask,render_template,requestfrom form import Form_dfrom Blue import blueapp = Flask(__name__)app.config['SECRET_KEY']='xxx'app.register_blueprint(blue,url_prefix='/blue')@app.route('/')def index(): return render_template('login.html')#设置name和pwd的值name='123'password='123'@app.route('/login',methods=['GET','POST'])def login(): forms=Form_d() pwd=forms.pwd.data username=forms.name.data if pwd==password and username==name: return render_template('o.html') else: return 'eer'if __name__ == '__main__': app.run(port=7701)
对应登录页面
Title
转载地址:http://vtcqb.baihongyu.com/