Python-flask的wtf表单应用

  • 导入wtf库
    在一个flask导入flask-wtf库
from flask_wtf import FlaskForm
  • 自定义表单类

在创立表单的时候我们需要自定义表单类

我们做一个最基本的wtf表单,这里如图所示需要StringField,PasswordField,SubmitField三种表单类
引入

from wtforms import StringField,PasswordField,SubmitField

以及导入验证函数

from wtforms.validators import DataRequired,EqualTo

创建自定义表单类,一定要引入FlaskForm,其中validators为验证函数,DataRequired()验证是否为空

class LoginForm(FlaskForm):#DataRequired()有数据就可以username = StringField(u'用户名',validators=[DataRequired()])password = PasswordField(u'密码',validators=[DataRequired()])#EqualTo()判断密码是否一致#validators = 的后面是一个列表password2 = PasswordField(u'确认密码',validators=[DataRequired(),EqualTo('password','密码不一致')])submit = SubmitField(u'提交')
  • 建立表单
    在templates文件夹里建一个html文件,其中{{ form.username.label }}为文字,{{ form.username }}为文本框。
    不填{{ form.csrf_token()}}会出现错误
<form method="POST">{{ form.csrf_token()}}{{ form.username.label }}{{ form.username }}<br>{{ form.password.label }}{{ form.password }}<br>{{form.password2.label }}{{ form.password2 }}<br>{{ form.submit}}{% for message in get_flashed_messages() %}{{ message }}{% endfor %}
</form>

其中flash为闪现下方会解释。在使用flask时也需要引入

from flask import Flask,render_template,flash,request
  • 建立逻辑
    用request,提取数据
@app.route('/',methods=['GET',"POST"])
def login():login_form = LoginForm()#request.method判断请求方式if request.method == 'POST':username = request.form.get('username')password = request.form.get('password')password2 = request.form.get('password2')# 验证参数if login_form.validate_on_submit():#login_form.validate_on_submit():函数判断输入是否正确print (username)return'sssssss'else:flash('参数有误')return render_template('data.html',form=login_form)

提交数据时候是post方式,所以如果是post访问下就提取数据
login_form.validate_on_submit():语句判断是否正确,正确就弹出字符,错误则用flash闪现出消息有误

  • SECRET_KEY
    此时运行一遍代码,仍然会出错。原因是没有配置SECRET_KEY
app.config["SECRET_KEY"] = "12345678"

秘钥可以写的复杂一点

以下为全部代码
data.html

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body>
<form method="POST">{{ form.csrf_token()}}{{ form.username.label }}{{ form.username }}<br>{{ form.password.label }}{{ form.password }}<br>{{form.password2.label }}{{ form.password2 }}<br>{{ form.submit}}{% for message in get_flashed_messages() %}{{ message }}{% endfor %}
</form>
</body>
</html>

app.py

from flask import Flask,render_template,flash,request
from flask_wtf import FlaskForm#自定义表单类
from wtforms import StringField,PasswordField,SubmitField
from wtforms.validators import DataRequired,EqualTo
#文本字段,密码字段
# import sys
# reload(sys)
# sys.setdefaultencoding("utf-8")
app = Flask(__name__)
app.config["SECRET_KEY"] = "12345678"class LoginForm(FlaskForm):#DataRequired()有数据就可以username = StringField(u'用户名',validators=[DataRequired(message='请输入名户名')])password = PasswordField(u'密码',validators=[DataRequired(message='请输入密码')])#EqualTo()判断密码是否一致#validators = 的后面是一个列表password2 = PasswordField(u'确认密码',validators=[DataRequired(),EqualTo('password','密码不一致')])submit = SubmitField(u'提交')@app.route('/',methods=['GET',"POST"])
def login():login_form = LoginForm()#request.method判断请求方式if request.method == 'POST':username = request.form.get('username')password = request.form.get('password')password2 = request.form.get('password2')# 验证参数if login_form.validate_on_submit():print (username)return'sssssss'else:flash('参数有误')return render_template('data.html',form=login_form)if __name__ == '__main__':app.run()

Python-flask的wtf表单应用相关推荐

  1. Flask 核心技术 - WTF表单、上下文、表单验证、蓝图

    flask 获取请求参数 request request 就是flask中代表当前请求的 request 对象,其中一个请求上下文变量(理解成全局变量,在视图函数中直接使用可以取到当前本次请求) 常用 ...

  2. Flask学习与项目实战9:WTF表单验证

    1.WTF表单验证介绍 Flask-WTF是简化了WTForms操作的一个第三方库.WTForms表单的两个主要功能是验证用户提交数据的合法性以及渲染模板.当然还包括一些其他的功能:CSRF保护,文件 ...

  3. 【flask】04.wtf表单的全部用法实现

    学到了flask wtf 表单,网上想查看一下wtf表单的全部用法,结果都是StringFiled SubmitField PasswordField的用法, 反正都是学习,结合源码和借鉴(抄袭~~) ...

  4. Flask之Web表单使用

    Web表单使用 @(Flask) request对象包含客户端发出的所有请求信息. request.form能获取POST请求中提交的表单数据. 使用的包 Flask-WTF可以把处理Web表单的过程 ...

  5. Flask使用Flask-WTF表单

    Flask-WTF Flask-WTF是Flask框架的表单验证模块,Flask-WTF将表单数据解析.CSRF保护.文件上传等功能与Flask集成. 安装 Flask-WTF及其依赖可使用pip安装 ...

  6. Web框架——Flask系列之WTF表单验证练习(七)

    一.Web表单 web表单是web应用程序的基本功能. 它是HTML页面中负责数据采集的部件.表单有三个部分组成:表单标签.表单域.表单按钮.表单允许用户输入数据,负责HTML页面数据采集,通过表单将 ...

  7. python flask 表单提交_python中flask应用(表单处理)

    本篇文章给大家带来的内容是关于python中flask应用(表单处理),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 1.为什么使用Flask-WTF? request对象公开了所有 ...

  8. flask基础十四之wtf表单

    Web表单 Web 表单是 Web 应用程序的基本功能. 它是HTML页面中负责数据采集的部件.表单有三个部分组成:表单标签.表单域.表单按钮.表单允许用户输入数据,负责HTML页面数据采集,通过表单 ...

  9. Flask教程(十)表单处理Flask-WTF

    软硬件环境 windows 10 64bit anaconda3 with python 3.7 pycharm 2020.1.2 flask 1.1.2 flask_wtf 0.14.3 简介 we ...

最新文章

  1. Git 2.18版本发布:支持Git协议v2,提升性能
  2. vray渲染出图尺寸_Vray渲染出图该如何正确保存
  3. Linux 内存机制
  4. 【Java图文趣味版】快速搞定数组的声明、开辟空间和初始化赋值
  5. python中验证码连通域分割的方法详解
  6. 2015年创业中遇到的技术问题:21-30
  7. Tomcat9.0部署iot.war(环境mysql8.0,centos7.2)
  8. Atitit 远程存储与协议 mtp ptp rndis midi nfs smb webdav ftp Atitit mtp ptp rndis midi协议的不同区别 1. PTP: 图
  9. centos7镜像在虚拟机上安装centos7详细教程
  10. 财智V6.0(完美破解序列号特别版)
  11. 计算机自配,手把手教你选择电脑配件,自己动手配置一台低价高能DIY计算机
  12. 车型数据导入excel
  13. MATLAB编写m函数理解 y=f(g(x))*h(x)
  14. 怎么提取图片上的文字?这三个小妙招,让你事半功倍!
  15. linux usr目录权限不够,linux-mkdir:无法创建目录“ /usr/local/n / versions”:权限被拒绝...
  16. 灵遁者是散文:不可理解的痛
  17. 票据ticket实现方式java代码_Java代码实践12306售票算法(二)
  18. 数值分析matlab最小二乘法,数值分析及其MATLAB实验(第2版)
  19. 不能换行 俄语 前端h5_H5兼容问题及解决方法
  20. Unknown column 'JOIN.id' in 'order clause'和 Unknown column 'XXXX.id' in 'order clause'的解决办法

热门文章

  1. 统一配置Outlook策略实现统一管理
  2. 解决linux解压tar文件出错
  3. 深入浅出 gRPC 01:gRPC 服务端创建和调用原理
  4. 用户搜索常见问题及解决方法小结(转)
  5. 写作中常用的绘图工具
  6. asp毕业设计——基于asp+sqlserver的WEB社区论坛设计与实现(毕业论文+程序源码)——社区论坛
  7. 安全云存储系统总体框架
  8. 2019年CSP-J2第一题:数字游戏(number)题解
  9. js获取当前是什么浏览器
  10. linux 16进制编辑器