Flask 三方组件 WTForms
WTForms是一个支持多个web框架的form组件,主要用于对用户请求数据进行验证
from flask import Blueprint
from flask import request
from flask import render_template
from wtforms.fields import simple, core #simple:简单的字段
from wtforms import Form, validators #validators:校验条件 reg = Blueprint("reg", __name__) class RegForm(Form):
username = simple.StringField(
label="用户名:", #前端显示的字段
#default:None, #组件生成后的默认值
id="username",
render_kw={"class": " form-control col-sm-2 "}, #为标签创建属性
validators=[ #声明校验条件
validators.DataRequired(message="用户名不能为空"),
validators.Length(min=2, max=7, message="用户名不能小于%(min)d,不能大于%(max)d") ]
)
password = simple.PasswordField(
label="密码:",
id="password",
render_kw={"class": " form-control col-sm-2 "},
validators=[
validators.DataRequired(message="密码不能为空"),
validators.Length(min=6, max=16, message="用户名不能小于%(min)d,不能大于%(max)d") ]
)
repassword = simple.PasswordField(
label="确认密码",
render_kw={"class": " form-control col-sm-2 "},
validators=[
validators.EqualTo("password", message="密码不一致")
] ) email = simple.StringField(
label="邮箱",
render_kw={"class": " form-control col-sm-2 "},
validators=[
validators.Email(message="邮箱格式不符")
]
) gender = core.RadioField(
label="性别",
choices=[
(1, "男"),
(2, "女") ],
coerce=int ) hobby = core.SelectMultipleField(
label="爱好",
choices=[
(1, "抽烟"),
(2, "喝酒"),
(3, "烫头"),
],
coerce=int
) sub = simple.SubmitField(
label="注册", ) @reg.route("/reg", methods=["GET", "POST"])
def reg_func():
if request.method == "GET":
reg = RegForm() #实例化对象
return render_template("reg.html", reg=reg)
else:
new_reg = RegForm(formdata=request.form)
if new_reg.validate():
return "注册成功"
else:
return render_template("reg.html", reg=new_reg)
login.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title> </head>
<body>
<form action="" method="post" novalidate>
{{ lf.username.label }} {{ lf.username }} {{ lf.username.errors.0 }}
{{ lf.password.label }} {{ lf.password }} {{ lf.password.errors.0 }}
{{ lf.sub }}
</form>
</body>
</html>
reg.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title> </head>
<body>
<form action="" method="post">
{% for f in regf %}
{% if f.label == "登陆" %}
<p>{{ f }}{{ f.errors.0 }}</p>
{% else %}
<p>{{ f.label }}{{ f }}{{ f.errors.0 }}</p>
{% endif %}
{% endfor %} </form> </body>
</html>
Flask 三方组件 WTForms的更多相关文章
- Flask 三方组件 Flask-Session
使用 from flask import session, Flask from flask_session import Session from redis import Redis app = ...
- flask --- 03 .特殊装饰器, CBV , redis ,三方组件
一.特殊装饰器(中间件) 1.before_request 在请求进入视图函数之前 @app.before_request def look(): 2. after_request 在结束视图函数之后 ...
- flask中的wtforms使用
一.简单介绍flask中的wtforms WTForms是一个支持多个web框架的form组件,主要用于对用户请求数据进行验证. 安装: pip3 install wtforms 二.简单使用wtfo ...
- flask框架----flask中的wtforms使用
一.简单介绍flask中的wtforms WTForms是一个支持多个web框架的form组件,主要用于对用户请求数据进行验证. 安装: pip3 install wtforms 二.简单使用wtfo ...
- Flask学习【第7篇】:Flask中的wtforms使用
简介flask中的wtforms WTForms是一个支持多个web框架的form组件,主要用于对用户请求数据进行验证. 安装 pip3 install wtforms 简单使用wtforms组件 用 ...
- Flask系列(七)Flask中的wtforms使用
一.简单介绍flask中的wtforms WTForms是一个支持多个web框架的form组件,主要用于对用户请求数据进行验证. 安装: pip3 install wtforms 二.简单使用wtfo ...
- Flask - WTF和WTForms创建表单
目录 Flask - WTF和WTForms创建表单 一. Flask-WTF 1.创建基础表单 2.CSRF保护 3.验证表单 4.文件上传 5.验证码 二. WTForms 1. field字段 ...
- 基于python实现的三方组件----Celery
一.基于python实现的三方组件----Celery 1.作用 用于异步周期任务的处理 2.Celery的组成 (1)任务 app (2)记录任务的缓存(通常用redis或rabbitMQ) 任务记 ...
- Flask【第7篇】:Flask中的wtforms使用
flask中的wtforms使用 一.简单介绍flask中的wtforms WTForms是一个支持多个web框架的form组件,主要用于对用户请求数据进行验证. 安装: pip3 install w ...
随机推荐
- map reduce程序示例
map reduce程序示例 package test2; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop. ...
- Leetcode 344. 反转字符串
344. Reverse String 解题代码: class Solution { public: void reverseString(vector<char>& s) { , ...
- MongoDB 入门
1 MongoDb 简介 MongoDB是为互联网而生的数据库,是文档数据库. 1.1 优点: Schema-less,不需要预先定义表结构,同一个"表"中可以保存多个格式的数据: ...
- CentOS6.9安装Logstash
一.下载地址 官网:https://www.elastic.co/cn/downloads/logstash 百度云盘: 二.安装 .tar.gz logstash 配置文件(配置文件放哪个目录都可以 ...
- json2csharp & json 格式化
json2csharp: http://json2csharp.com/ bejson: http://www.bejson.com/
- Python_二维数组
例1:将数组旋转90度 a = [[i for i in range(4)] for n in range(4)] print(a) # 遍历大序列 for a_index, w in enumera ...
- FTP(虚拟用户,并且每个虚拟用户可以具有独立的属性配置)
VSFTP是一个基于GPL发布的类Unix系统上使用的FTP服务器软件,它的全称是Very Secure FTP 首先安装 主配置文件:/etc/vsftpd/vsftpd. ...
- eclipse发布web
elipse集成tomcat 在实际开发中通常在eclipse中集成tomcat,这样在开发中更方便一些.打开eclipse,选择界面下方的servers选项,点击no servers are ava ...
- Codeforces 311D Interval Cubing 数学 + 线段树 (看题解)
Interval Cubing 这种数学题谁顶得住啊. 因为 (3 ^ 48) % (mod - 1)为 1 , 所以48个一个循环节, 用线段树直接维护. #include<bits/stdc ...
- Codeforces 1137D Cooperative Game (看题解)
Cooperative Game 智商题, 感觉不太能推出来, 虽然看看证明过程是对的. #include<bits/stdc++.h> #define LL long long #def ...