Python-flask的wtf表单应用
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表单应用相关推荐
- Flask 核心技术 - WTF表单、上下文、表单验证、蓝图
flask 获取请求参数 request request 就是flask中代表当前请求的 request 对象,其中一个请求上下文变量(理解成全局变量,在视图函数中直接使用可以取到当前本次请求) 常用 ...
- Flask学习与项目实战9:WTF表单验证
1.WTF表单验证介绍 Flask-WTF是简化了WTForms操作的一个第三方库.WTForms表单的两个主要功能是验证用户提交数据的合法性以及渲染模板.当然还包括一些其他的功能:CSRF保护,文件 ...
- 【flask】04.wtf表单的全部用法实现
学到了flask wtf 表单,网上想查看一下wtf表单的全部用法,结果都是StringFiled SubmitField PasswordField的用法, 反正都是学习,结合源码和借鉴(抄袭~~) ...
- Flask之Web表单使用
Web表单使用 @(Flask) request对象包含客户端发出的所有请求信息. request.form能获取POST请求中提交的表单数据. 使用的包 Flask-WTF可以把处理Web表单的过程 ...
- Flask使用Flask-WTF表单
Flask-WTF Flask-WTF是Flask框架的表单验证模块,Flask-WTF将表单数据解析.CSRF保护.文件上传等功能与Flask集成. 安装 Flask-WTF及其依赖可使用pip安装 ...
- Web框架——Flask系列之WTF表单验证练习(七)
一.Web表单 web表单是web应用程序的基本功能. 它是HTML页面中负责数据采集的部件.表单有三个部分组成:表单标签.表单域.表单按钮.表单允许用户输入数据,负责HTML页面数据采集,通过表单将 ...
- python flask 表单提交_python中flask应用(表单处理)
本篇文章给大家带来的内容是关于python中flask应用(表单处理),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 1.为什么使用Flask-WTF? request对象公开了所有 ...
- flask基础十四之wtf表单
Web表单 Web 表单是 Web 应用程序的基本功能. 它是HTML页面中负责数据采集的部件.表单有三个部分组成:表单标签.表单域.表单按钮.表单允许用户输入数据,负责HTML页面数据采集,通过表单 ...
- 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 ...
最新文章
- Git 2.18版本发布:支持Git协议v2,提升性能
- vray渲染出图尺寸_Vray渲染出图该如何正确保存
- Linux 内存机制
- 【Java图文趣味版】快速搞定数组的声明、开辟空间和初始化赋值
- python中验证码连通域分割的方法详解
- 2015年创业中遇到的技术问题:21-30
- Tomcat9.0部署iot.war(环境mysql8.0,centos7.2)
- Atitit 远程存储与协议 mtp ptp rndis midi nfs smb webdav ftp Atitit mtp ptp rndis midi协议的不同区别 1. PTP: 图
- centos7镜像在虚拟机上安装centos7详细教程
- 财智V6.0(完美破解序列号特别版)
- 计算机自配,手把手教你选择电脑配件,自己动手配置一台低价高能DIY计算机
- 车型数据导入excel
- MATLAB编写m函数理解 y=f(g(x))*h(x)
- 怎么提取图片上的文字?这三个小妙招,让你事半功倍!
- linux usr目录权限不够,linux-mkdir:无法创建目录“ /usr/local/n / versions”:权限被拒绝...
- 灵遁者是散文:不可理解的痛
- 票据ticket实现方式java代码_Java代码实践12306售票算法(二)
- 数值分析matlab最小二乘法,数值分析及其MATLAB实验(第2版)
- 不能换行 俄语 前端h5_H5兼容问题及解决方法
- Unknown column 'JOIN.id' in 'order clause'和 Unknown column 'XXXX.id' in 'order clause'的解决办法