Flask之WTfroms组件
2024-10-21 09:57:26
一、WTfroms简介
WTForms插件是类似于django的form组件的插件,可以帮我们写标签,校验数据等。
二、安装与使用
安装:
pip install WTForms
使用:
from wtforms import Form
from wtforms.fields import simple, core
from wtforms import validators class RegForm(Form): username = simple.StringField(
label="用户名",
validators=[
validators.DataRequired(message="数据不能为空!"),
validators.length(min=4, max=6, message="用户名不能少于4位且不能大于6位")
],
render_kw={"class": "form-control", "pp": ""}
)
password = simple.PasswordField(
label="密码",
validators=[
validators.DataRequired(message="密码不能为空!"),
validators.length(min=6, max=16, message="密码不能少于6位且不能大于6位"),
validators.Regexp(regex="\d+", message="密码必须是数字")
],
render_kw={"class": "form-control", "pp": ""}
)
re_password = simple.PasswordField(
label="确认密码",
validators=[
validators.EqualTo(fieldname="password", message="两次密码不一致")
],
render_kw={"class": "form-control"}
)
gender = core.RadioField(
label="性别",
validators=[
validators.DataRequired(message="请先选择一个性别!")
],
choices=((1, "男"), (2, "女")),
coerce=int,
# default=1,
)
hobby = core.SelectMultipleField(
label="爱好",
choices=((1, "游戏"), (2, "妹子"), (3, "汉子")),
coerce=int,
default=[1, 2],
render_kw={"class": "form-control"}
) @app.route("/register", methods=("GET", "POST"))
def reg():
form_obj = RegForm()
if request.method == "POST":
print(request.form)
form_obj = RegForm(request.form)
if form_obj.validate():
ers = request.form.to_dict()
print(ers)
print(form_obj.data)
return "注册成功"
return render_template("reg.html", form_obj=form_obj) if __name__ == '__main__':
app.run(debug=True)
前端:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"
integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
</head>
<body>
<div class="container">
<div class="row">
<div class="col-md-4 col-md-offset-4">
<form action="" method="post" novalidate>
{% for field in form_obj %}
<div class="form-group">
{{ field.label }}
{{ field }}
{{ field.errors.0 }}
</div>
{% endfor %}
<div>
<button class="btn btn-primary btn-lg btn-block">注册</button>
</div>
</form>
</div>
</div>
</div> </body>
</html>
最新文章
- FizzBuzzWhizz游戏的高效解法
- iis6|iis7|配置URLRewriter|64位操作系统下|.net2.0|.net4.0|配置URLRewriter|Web.config配置详情
- Lucene查询索引(分页)
- win8 hyper-v 禁用不必卸载虚拟机
- hadoop笔记之Hive入门(Hive的体系结构)
- Qt下如何修改文件的时间(全平台修改)
- Linux 默认日志类型
- Zabbix WMI监控
- jquery 的鼠标事件/淡入淡出/绑定
- 装完Centos7提示Initial setup of CentOS Linux 7 (core)
- 逆向---02.je &; jmp &; jnz 、OD调试
- Jquery 属性选择器&;设置元素属性
- python做数据分析pandas库介绍之DataFrame基本操作
- Django的跨域请求
- php把采集内容中图片地址下载并替换成本地地址
- 相邻行列相互影响的状态类问题(类似状压dp的搜索)(POJ3279)
- hdu2571 命运 2016-09-11 16:54 53人阅读 评论(0) 收藏
- [示例] Firemonkey ListView 仿 iPhone X 浏海
- struts2第三天——值栈
- 【NOI2018】
热门文章
- Linux云主机(离线)搭建本地yum源
- VS2019/VS2017怎么更改visual studio新建项目的默认路径
- vs2010+ARX2012向导添加mfc支持类出现Error in default.htm PopulateDialogIDs():
- jquery json对象转换
- [New!!!]欢迎大佬光临本蒟蒻的博客(2019.11.27更新)
- TCP/IP学习笔记3--传输方式的分类
- Docker的基础教程(基于CentOS)
- spring boot 初始
- windows server系统打印服务配置
- poj 3744 题解