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 ...
随机推荐
- @ResponseBody 和 @RequestBody 的作用
先提一嘴 @RequestMapping(“url”),这里的 url写的是请求路径的一部分,一般作用在 Controller的方法上,作为请求的映射地址. 代码: @RequestMapping(v ...
- vue 引入Element组件
1.打开cmd,在当前目录中运行: npm i element-ui -S 2.src/main.js(红色的) import Vue from 'vue' import App from './Ap ...
- 435. Non-overlapping Intervals
Given a collection of intervals, find the minimum number of intervals you need to remove to make the ...
- JDK 自带压缩解压流
代码如下 package com.test.java.zip; import java.io.BufferedInputStream; import java.io.BufferedOutputStr ...
- Linux查找当前目录5天的文件并打包
find . -name "*.sh" -mtime -5 |xargs tar zcvf /tmp/log.tar.gz 解释: *.sh是查找以.sh结尾的文件,也可以是其他如 ...
- Pytorch LSTM 词性判断
首先,我们定义好一个LSTM网络,然后给出一个句子,每个句子都有很多个词构成,每个词可以用一个词向量表示,这样一句话就可以形成一个序列,我们将这个序列依次传入LSTM,然后就可以得到与序列等长的输出, ...
- Python 扫盲
yield使用浅析 菜鸟教程:http://www.runoob.com/w3cnote/python-yield-used-analysis.html #!/usr/bin/python # -*- ...
- Linux 文件夹相关常用命令
Linux 文件夹相关常用命令 查看 ls -la -l 列出详细信息 -a 列出全部,包括.和.. 删除 rm <folder> -rf -r 就是向下递归,不管有多少级目录,一并删 ...
- css上传图片中等待不可点击效果
<!DOCTYPE html> <html> <head> <title>上传中</title> <style type=" ...
- CentOS7 中文man(cman)配置方法
1. 下载中文man包 http://pkgs.fedoraproject.org/repo/pkgs/man-pages-zh-CN/manpages-zh-1.5.1.tar.gz/13275fd ...