一、框架Flask-WTF

  安装: pip install flask-wtf

  需要程序设置一个密钥 

app = Flask(__name__)
app.config['SECRET_KEY'] = 'hard to geuss string'

二、表单

(1)实例Web表单,包含一个文本字段和一个提交按钮

from flask.ext.wtf import Form
from wtforms import StringField,SubmitField
from wtforms.validators import Required class NameForm(Form):
#name的一段文本文字
name = StringField('What is you name?',validator = [required()])
#一个名为Submit的按钮
submit = SubmitField('Submit')

(2)WTForms支持的HTML字段

字段类型 说明
StringField 文本字段
TextAreaField 多行文本字段
PasswordField 密码文本字段
HiddenField 隐藏文本字段
DateField 文本字段,格式为datetime.data
DateTimeField 文本字段,格式为datetime.,datetime
IntegerField 文本字段,值为整数
DecialField 文本字段,decimal.Decimal
FloatField 文本字段,值为浮点数
BooleanField 复选框,值为True和False
RadioField 一组单选框
SelectField 下拉列表
SelectMultipeField 下拉列表,可以选择多个值
FileField 文件上传
SubmitField 提交按钮
FormField 吧表单作为字段嵌入另一个表单
FieldList 一组指定类型的字段

(3)WTForms验证函数

函数 说明
Email 验证电子邮件地址
EqualTo 比较两个字段值
IPAddress 验证网络地址
Length 验证字符串长度
NumberRange 验证输入值是否在数字范围内
Optional 无输入值跳过其他验证函数
Required 确保字段中有数据
Regexp 使用正则表达式验证输入值
URL 验证URL
AnyOf 确保输入值在可选择值列表中
NoneOf 确保输入值不可再可选值列表中

(4)将表单渲染成HTML

{% import "bootstrao/wtf.html" as wtf %}
{{wtf.quick_form(form)}}

**在视图函数中处理表单  form = NameForm()

(5)Flask消息——使用flash()函数

flash('Looks like you hanve changed your name!')

  在模板中渲染函数

{% for message in get_flashed_messages() %}
<dic class="alert-warning">
<button type="button" class="close" data-dismiss="alert">%times;</button>
{{message}}
</div>

Python——Flask框架——Web表单的更多相关文章

  1. Flask教程 —— Web表单(上)

    第二章中介绍的request对象公开了所有客户端发送的请求信息.特别是request.form可以访问POST请求提交的表单数据. 尽管Flask的request对象提供的支持足以处理web表单,但依 ...

  2. 基于Flask框架搭建视频网站的学习日志(三)之原始web表单

    基于Flask框架搭建视频网站的学习日志(三)1.原始Web 表单 本节主要用于体验一下前端后端直接数据的交互,样例不是太完善,下一节会加入Flash处理,稍微完善一下页面 (备注:建议先阅读廖雪峰老 ...

  3. 轻量级Web框架Flask——Web表单

    安装 Flask-WTF及其依赖可使用pip安装 pip install flask_wtf 配置 要求应用配置一个密钥.密钥是一个由随机字符构成的唯一字符串,通过加密或签名以不同的方式提升应用的安全 ...

  4. Flask Web Development —— Web表单(上)

    Flask-WTF扩展使得处理web表单能获得更愉快的体验.该扩展是一个封装了与框架无关的WTForms包的Flask集成. Flask-WTF和它的依赖集可以通过pip来安装: (venv) $ p ...

  5. Flask 教程 第三章:Web表单

    本文翻译自 The Flask Mega-Tutorial Part III: Web Forms 这是Flask Mega-Tutorial系列的第三部分,我将告诉你如何使用Web表单. 在第二章中 ...

  6. Flask开发系列之Web表单

    Flask开发系列之Web表单 简单示例 from flask import Flask, request, render_template app = Flask(__name__) @app.ro ...

  7. Flask学习 三 web表单

    web表单 pip install flask-wtf 实现csrf保护 app.config['SECRET_KEY']='hard to guess string' # 可以用来存储框架,扩展,程 ...

  8. 基于Extjs的web表单设计器 第六节——界面框架设计

    基于Extjs的web表单设计器 基于Extjs的web表单设计器 第一节 基于Extjs的web表单设计器 第二节——表单控件设计 基于Extjs的web表单设计器 第三节——控件拖放 基于Extj ...

  9. flask 利用flask_wtf扩展 创建web表单

    在Flask中,为了处理web表单,我们一般使用Flask-WTF扩展,它封装了WTForms,并且它有验证表单数据的功能 创建语句格式: startTime = DateTimeField('计划开 ...

随机推荐

  1. day26 Python 改变对象的字符串显示

    __str__,__repr__,__format__ format_dict={ 'nat':'{obj.name}-{obj.addr}-{obj.type}',#学校名-学校地址-学校类型 't ...

  2. GoldenGate OGG-01032 There Is a Problem in Network Communication Error in Writing to Rmt Remote Trail Rmttrail (Doc ID 1446621.1)

    GoldenGate OGG-01032 There Is a Problem in Network Communication Error in Writing to Rmt Remote Trai ...

  3. robotframework日志中文乱码,编译提示‘utf-8’ codecxxxx。

    1.需要设置robotframework的语系 2.设置完后,需要重启robotframework才生效.它比较特别,什么改变都要重启才生效

  4. mybatis 参数为list时,校验list是否为空, mybatis ${}与#{}的区别

    一.参数list时,先判断是否为空,否则会报错. 二.mybatis ${}与#{}的区别 简单来说#{} 解析的是占位符?可以防止SQL注入, 比如打印出来的语句 select * from tab ...

  5. 洛谷 P1596 [USACO10OCT]湖计数Lake Counting

    题目链接 https://www.luogu.org/problemnew/show/P1596 题目描述 Due to recent rains, water has pooled in vario ...

  6. ZOJ - 2423-Fractal

    A fractal is an object or quantity that displays self-similarity, in a somewhat technical sense, on ...

  7. JVM-Java内存区域

    JVM虚拟机运行时数据区结构分为: 其中方法区和堆是所有线程共享的内存区域,而Java栈.本地方法栈.程序计数器是线程私有的. 我们详细介绍运行时数据区的各个区域及其作用. 程序计数器: 一块较小的内 ...

  8. 从高德采集最新的省市区三级坐标和行政区域边界,用js在浏览器中运行

    本文描述的是对国家统计局于2019-01-31发布的<2018年统计用区划代码和城乡划分代码(截止2018年10月31日)>中省市区三级的坐标和行政区域边界的采集. 本文更新(移步查阅): ...

  9. C# Type.GetType 返回NULL 问题解决记录

    Type.GetType("OP.Client.Html.Resources.KenFengFormMethod"); 从Dll里面获取KenFengFormMethod这个会返回 ...

  10. Python中Socket粘包问题的解决

    服务器端 import socket import subprocess import struct server = socket.socket() ip_port = ("192.168 ...