Flask-WTF 示例

坑请注意

如selectField字段提示: choices not valid

area = SelectField(coerce=int)
form.py
from flask_wtf import FlaskForm
from wtforms import StringField, PasswordField
from wtforms.validators import DataRequired, Length, Email, EqualToclass UserRegisterForm(FlaskForm):username = StringField('用户名', [DataRequired('用户名必填!'), Length(min=6, max=20, message='用户名必须介于6-20字符!')])password = PasswordField('密码', [DataRequired('密码必填!'), Length(min=6, max=20, message='密码必须介于6-20字符!')])confirm = PasswordField('重复密码', [DataRequired('重复密码必填!'), EqualTo('password', message='两次密码输入不一致!')])email = StringField('邮箱', [DataRequired('邮箱必填!'), Email('邮箱格式不正确!')])

view.py

class RegView(MethodView):def get(self):form = UserRegisterForm(request.form)return render_template('register.html', form=form)def post(self):form = UserRegisterForm(request.form)if User.query.filter_by(username=form.username.data).first():flash("当前用户名已经注册!")return render_template('register.html', form=form)elif User.query.filter_by(email=form.email.data).first():flash("当前邮箱已经注册!")return render_template('register.html', form=form)else:form.validate_on_submit()user = User(form.username.data,form.password.data,form.email.data,)user.save()return redirect(url_for('.login'))
jinja2 宏方法    helper.html    获取 flask的 flash 消息
{% macro renden_field(field) %}{% if field.errors %}{% for error in field.errors %}<li style="font-size: medium">{{ error }}</li>{% endfor %}{% endif %}
{% endmacro %}{% macro messages(get_flashed_messages) %}{% with messages = get_flashed_messages() %}{% if messages %}{% for message in messages %}<div class="alert alert-danger"><a href="#" class="close" data-dismiss="alert">×</a>{{ message }}</div>{% endfor %}{% endif %}{% endwith %}
{% endmacro %}

form.html

{% from 'helper.html' import renden_field,messages %}<form action="" class="form-horizontal" method="post">{{ form.csrf_token }}{{ messages(get_flashed_messages) }}<div class="panel-body"><div class="form-group">{{ form.username.label(class="col-lg-2 col-sm-2 control-label") }}<div class="col-md-6">{{ form.username(class='from-control') }}{{ renden_field(form.username) }}</div></div><div class="form-group">{{ form.password.label(class="col-lg-2 col-sm-2 control-label") }}<div class="col-md-6">{{ form.password(class='from-control') }}{{ renden_field(form.password) }}</div></div>

Flask-WTF 示例相关推荐

  1. flask wtf用的多吗_WTF是Docker吗?

    flask wtf用的多吗 Docker和Docker英文简要说明 内容: 什么是码头工人? 在Docker中部署Node.js应用 什么是docker compose以及如何使用? 什么是Docke ...

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

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

  3. python前端学习-------Flask框架基础(建议收藏)

    Flask框架基础 下载并安装Flask框架 Flask基础 第一个Flask应用 开启调试模式 路由 变量规则 构造URL HTTP方法 模板 语法格式 模板变量 控制结构 条件控制语句 `if` ...

  4. python flask框架详解

    Flask是一个Python编写的Web 微框架,让我们可以使用Python语言快速实现一个网站或Web服务.本文参考自Flask官方文档, 英文不好的同学也可以参考中文文档 1.安装flask pi ...

  5. python flask 教程_Flask 教程 第一章:Hello, World!

    一趟愉快的学习之旅即将开始,跟随它你将学会用Python和Flask来创建Web应用.上面的视频包含了整个教程的内容预览(译者注:视频见原文).通过学习本章内容,你将学会如何创建一个Flask项目,并 ...

  6. python flask源码解析_用尽洪荒之力学习Flask源码

    [TOC] 一直想做源码阅读这件事,总感觉难度太高时间太少,可望不可见.最近正好时间充裕,决定试试做一下,并记录一下学习心得. 首先说明一下,本文研究的Flask版本是0.12. 首先做个小示例,在p ...

  7. 用 Flask 来写个轻博客 (13) — M(V)C_WTForms 服务端表单检验

    Blog 项目源码:https://github.com/JmilkFan/JmilkFan-s-Blog 目录 目录 前文列表 WTForms WTF 的基础使用 常用的字段类型 fields.Da ...

  8. 【Python】Flask框架系列(一):安装、页面跳转/重定向、模板、逻辑语句、过滤器、继承/使用block、url链接/加载静态资源

    从下载安装开始的所有笔记. 其实 Flask 的示例程序算是 MVC 模式的. Model 是 ORM, V 是 Template, C 是 url route 和 request handler. ...

  9. alchemy php,Flask SQLAlchemy

    在Flask Web应用程序中使用原始SQL对数据库执行CRUD操作可能很乏味. 相反,Python工具包SQLAlchemy是一个功能强大的OR映射器,为应用程序开发人员提供了SQL的全部功能和灵活 ...

  10. python全栈开发百度云_价值2400 2016年11月全栈开发Flask Python Web 网站编程

    01-计算机基础常识.mp4 02-Python语言概览.安装与运行.mp4 03-Python 变量.数据类型及存储.mp4 04-Python 常用数据类型概览.mp4 05-数值与字符串.mp4 ...

最新文章

  1. 青岛大学计算机专硕和学硕,【2020】【青岛大学】【学硕646】复习经验
  2. python类的属性和对象属性_在python的类中动态添加属性与生成对象
  3. 配置文件占位符||Profile——1、多Profile文件 2、yml支持多文档块方式 3、激活指定profile
  4. Fabonacci三种方法求解C++
  5. 《经济学人》:Facebook 的 Libra 项目预示着一场消费革命
  6. BP: 通过SAP name拿到central person id
  7. DOM-7 【兼容】事件处理函数、冒泡捕获、阻止冒泡默认事件
  8. 【项目管理】工作分解结构WBS
  9. 【法克鱿】域名DNS设置修改失败!
  10. 小鹏汽车拟挂牌港交所 披露了一些有意思的数据
  11. RHEL6.3 NFS服务搭建过程详解
  12. R语言模拟:Bias Variance Decomposition
  13. 圣经中真的藏有密码吗?
  14. 想做一个SSL代理的集群中,有很多问题需要解决,I am all grateful to you for your advice
  15. 主流智能手机屏幕材质介绍
  16. 信息系统项目管理师之信息化与信息系统
  17. dowhile实现求水仙花数
  18. 微信小程序例子——修改小程序的标题
  19. 进程同步(操作系统)
  20. GPG生成密钥对(Windows)及应用

热门文章

  1. win8计算机无法睡眠,win8系统无法进入睡眠的处理技巧
  2. 2018年总结与2019年目标与计划
  3. 日课-5-30-曹全
  4. (十四)JUC - 读写锁
  5. 联想e470加装固态硬盘_DIY之Thinkpad E470升级记
  6. mp3在计算机中储存的形式,电脑中保存的AC3音频文件怎么转MP3格式的
  7. 【前端面试之JS】js如何实现继承
  8. ubuntu16服务器vnc无显示器,Ubuntu Server 16.04 配置VNC
  9. OpenCV第四篇:边缘检测
  10. 阿里巴巴达摩院发布2022十大科技趋势,今年的预测有哪些亮点?