Flask-WTF 示例

如何使用Flask-WTF来处理表单提交和验证? 总之,Flask-WTF提供了一个简单的方法来处理Flask应用中的表单提交和验证。Flask-WTF是一个Flask插件,它结合了Flask和WTForms,使得在Flask应用中处理表单变得非常简单。身份验证:Flask-WTF提供了一个简单的的方法来验证用户身份,可以与Flask的认证系统集成。接下来,让我们创建一个简单的Flask应用,并使用Flask-WTF处理表单提交和验证。自定义验证器:可以使用自定义验证器来验证表单数据,例如邮箱地址验证、密码强度验证等。首先,我们要安装Flask-WTF。 阅读详情

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, EqualTo


class 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学习笔记5--Flask-WTF表单 Web表单 web表单是web应用程序的基本功能。 它是HTML页面中负责数据采集的不见。表单由三个部分组成:表单标签、表单域、表单按钮。表单允许用户输入数据,负责HTML页面数据采集,通过表单将用户输入的数据提交给服务器。 在Flask中,为了处理web表单,我们一般使用Flask-WTF扩展,它封装了WTForms,并且它有验证表单数据的功能。 WTForms支持的HTML标准字段... 阅读详情

相关推荐

Flask-WTF的完整开发示例

Flask-WTF 是一个基于 Flask 和 WTForms 的扩展库,它将表单处理、数据验证和 CSRF 保护集成到 Flask 应用中,帮助开发者更轻松地处理 HTML 表单和用户输入。文章中的示例展示了 Flask-WTF 的完整使用流程,包括表单定义、验证、渲染以及用户交互处理。它适合开发者快速上手 Flask-WTF 的核心功能,并可以进一步扩展到更复杂的表单应用场景。

u013039977的博客 702

Flask使用Flask-WTF表单

Flask-WTF Flask-WTF是Flask框架的表单验证模块,Flask-WTF将表单数据解析、CSRF保护、文件上传等功能与Flask集成。 安装 Flask-WTF及其依赖可使用pip安装 pip install flask-wtf 安装成功如下: 跨站请求伪造保护 默认请求下,Flask-WTF能保护所有表单免受跨站请求伪造(CSRF)的攻击。为了实现CSRF保护,Flask-WTF需要程序设置一个密钥。Flask-WTF使用这个密钥生成加密令牌,再用令牌验证请求中表单数据的真伪。设置密钥

小马同学 3118

从零构建个人知识库:Obsidian与Git实践打造可生长的第二大脑

在信息爆炸的时代,如何有效管理个人知识资产,构建一个可检索、可关联、可生长的个人知识库,成为提升学习效率和创造力的关键。其核心原理在于通过系统化的信息架构与工作流设计,将碎片化信息转化为结构化的知识网络。从技术价值看,这不仅是笔记方法的升级,更是个人知识管理(PKM)和思维模式的革新,能有效对抗信息过载与知识孤岛。实践中,以Obsidian为代表的本地Markdown笔记软件,结合双向链接和关系图谱功能,为知识网络的构建提供了强大支撑;而引入Git进行版本控制,则确保了知识资产的历史可追溯性与安全备份。这种

weixin_28836989的博客 301

Flask框架——Flask-WTF表单:文件上传、验证码

在上篇文章中,我们学习了Flask框架——Flask-WTF表单数据验证、CSRF保护,这篇文章我们学习Flask框架——Flask-WTF表单文件上传、验证码。

霖hero 1061

PID控制器(位置式和增量式)

PID控制算法

zhinian_hao的博客 4512

TB6600驱动器共阴共阳接法傻傻分不清?一张图搞定STM32与42步进电机的接线避坑指南

本文详细解析了TB6600驱动器共阴共阳接法的本质区别,提供了STM32与42步进电机的高效连接方案。通过实际案例和接线图示,帮助读者避免常见错误,确保驱动器与MCU的安全连接,提升项目稳定性。

weixin_28710999的博客 244

细说flask表单flask-wtf

一、安装pip install flask-wtf二、创建一个flask的项目引入相对应的包from flask import Flask,render_template import flask #引入模块 from flask_wtf import FlaskForm,CsrfProtect #如果输入的是字符串那么就用StringField,如果是整数那么就用IntegerField from

水痕 1万+

【Pix4d精品教程】Pix4d中央子午线细化设置(测区跨两个分带)

本文介绍了在Pix4d软件中通过修改中央子午线设置来解决跨分带测区刺点问题的方法。针对测区跨3度分带(如105°和108°之间)时像控点与靶标点偏移较大的情况,建议将中央子午线设为测区中心(如106.5°)。具体操作步骤包括:修改投影文件中的中央子午线参数,选择新的输出坐标系配置文件。该方法能有效提高像控点刺点效率,为航测内业数据处理提供便利。操作简单实用,适合大比例尺测图项目中跨分带测区的数据处理需求。

智慧空间实验室 5526

Flask-WTF表单

一.定义:通过类的形式来渲染表单,并且提供了验证函数二.优点: 1. 可以通过类的形式渲染表单,里面提供了相应的函数校验表单内容 2. 提供了csrf校验机制 csrf定义: 跨站请求伪造 指攻击者盗用了你的身份,以你的名义发送恶意请求 csrf攻击流程:                     三.使用流程: 1.安装,导入包 pip install flask_wtf      ...

wpb74521wrf的博客 822

基于高光谱的物质反演与分类 — 技术文章(原理详解 + 深度代码实现)

高光谱遥感 / 近场光谱采集产生逐像素上百波段的光谱曲线,是物质识别与定量反演(abundance / composition estimation)和语义分类(landcover / material class)的一把利器。本文第一部分对常用模型(线性混合模型、非线性辐射传输、稀疏反演、降维与特征选择、分类器/神经网络)进行数学推导与理论分析;第二部分给出两套完整实现:A. 基于 LMM 的约束最小二乘 / 稀疏反演流水线(含端到端评估);

VectorShift的博客 218

华为OD机试 - 跳房子I(Java 双机位A卷 100分)

可行的两步组合有 [1, 2] (索引和 0+3=3)、[1, 2] (索引和 0+4=4)、[4, 2] (索引和 1+3=4)、[4, 2] (索引和 1+4=5)、[5, 2] (索引和 2+3=5)、[5, 2] (索引和 2+4=6)。此样例有多种组合满足两回合跳到最后,譬如[-1,9], [2,6],其中[-1,9]的索引和为0+3=3, [2,6]的索引和为1+4=5, 所以索引和最小的步数组合为[-1,9].[3, 2] 和 [1, 4] 都满足和等于 5,且索引和均为 3。

学Java,找哪吒 4508

Flask框架——Flask-WTF表单:数据验证、CSRF保护

为name添加自定义validata_%s,并传入输入值data#使用isdigit检验是否为数字开头,使用data[0]获取数据的首位raiseValidationError('用户名不能以数字开头')#若验证不通过则抛出异常这里我们为form.py表单类中的name添加自定义验证,所以自定义函数名为validate_name,如果我们为表单类中的password添加自定义验证时,自定义函数名为validate_password,也就是说自定义验证函数名要和表单类中字段名要对应。.........

霖hero 1689

边缘计算与产业生态系统

目录 文章目录目录边缘计算产业参与者边缘计算产业生态系统 边缘计算产业参与者 边缘计算领域参与者众多,主流公司以打造生态优势为目标,基于自身服务层级向产业链上下两端进行拓展,目前市场主要参与者有: 系统集成商:在产业头部,具有广泛的能力,可以集成不同生态系统公司的产品,具有一定的全球性属性,在边缘计算领域大多由云服务商、电信运营商担任。 云服务商:具有领先的云技术优势与应用生态体系,同时拥有全球性资源布局与市场资源生态,并渴望成为边缘计算主导者。 电信运营商:具有边缘基础设施优势,以及不可替代的

烟云的计算 2098

Flask-WTF

Flask-WTF是Flask框架的一个扩展,它简化了WTForms(Web表单处理库)在Flask应用中的使用。WTForms本身提供了表单验证和渲染模板的功能,而Flask-WTF在此基础上增加了更多的特性,如CSRF保护、文件上传支持、国际化集成等。

Flask Web 1270

PyTorch深度学习实战(39)——少样本学习(Few-shot Learning)

小样本学习 (Few-shot Learning) 旨在解决在训练集中只有很少样本的情况下进行分类和推理的问题。在小样本学习中,我们希望通过利用已有的少量样本和先验知识来进行泛化,以便在面对新的、未见过的类别时能够做出准确的预测。这就要求模型能够从有限的训练样本中提取出有用的信息,并能够将这些信息应用到新类别的样本中去。在本节中,将介绍孪生、原型和关系网络的原理,并使用 PyTorch 实现孪生网络。

盼小辉丶的博客 1万+

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Flask插件-Flask-WTF表单

flask_wtf是flask框架的表单验证模块,可以很方便生成表单,也可以当做json数据交互的验证工具。 一、安装 pip install Flask-WTF pip install WTForms 二、简单使用示例 app.py from flask import Flask, render_template from forms import LoginForm from flask_b...

a200822146085的博客 368

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Flask之WTF和SQLAlchemy(4)

1 Flask WTF Web应用程序的一个重要方面是为用户提供用户界面。HTML提供了一个标签,用于设计界面。可以适当地使用Form(表单)元素,例如文本输入,单选按钮,选择等。 用户输入的数据以Http请求消息的形式通过GET或POST方法提交给服务器端脚本。 服务器端脚本必须从http请求数据重新创建表单元素。因此,实际上,表单元素必须定义两次 一次在HTML中,另一次在服务器端脚本中。 ...

布鲁斯 820

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

如何使用Flask-WTF等库来处理表单数据

在你的Flask应用中,定义一个继承自FlaskForm的表单类。在这个类中,你可以定义表单的字段和验证规则。Flask-WTF提供了多种字段类型(如StringField、PasswordField、SubmitField等)和验证器(如DataRequired、Length、EqualTo等)。

Flask Web 722

【Flask】学习——Web表单(普通表单和Flask-WTF)

Flask普通表单;Flask-WTF;WTForms支持、HTML标准字段、常用验证函数;WTForm示例;WTForm逻辑验证

See_Star的博客 1360

Flask学习笔记-No module named flask.ext.wtf

1 from flask.ext.wtf import Form 2 from wtforms import StringField,BooleanField 3 from wtforms.validators import DataRequired 4 5 class LoginForm(Form): 6 openid = StringField('openid',val...

weixin_30429201的博客 197

python flask-wtf

【代码】python flask-wft。

gaoke11240的博客 835

flask-wtf的使用

我们使用django时一般都会用用到django自带的form组件进行登录注册的验证,非常的好用也很强大。flask中同样也有类似的form组件,叫flask-wtf,名字不是很好听,但是功能还是一样的强大。flask-wtf是属于第三方库,需要安装:pip intsall flask-wtf。 flask-wtf的使用和django的Form基本类似。 首先创建一个form.py的文件,当然也可...

徳 868

flask表单Flask-WTF

安装flask-wtf pip3 install flask-wtf -i https://pypi.douban.com/simple 表单使用三步骤: 一:构建表单类 from wtforms import SubmitField, StringField, PasswordField from wtforms.validators import DataRequired, EqualTo # 创建表单类 class RegistForm(FlaskForm): username = S

都不是宝贝 377

【Flask学习笔记:七】Flask - WTF 处理表单

目录:   【Flask学习笔记:一】开发环境部署   【Flask学习笔记:二】Flask 入门基础知识   【Flask学习笔记:三】Flask 中的 request、response   【Flask学习笔记:四】Flask 应用和请求上下文   【Flask学习笔记:五】Jinja2 模板引擎   【Flask学习笔记:六】Flask 蓝图   【Flask学习笔记:七】Flask - W...

Mr_Zhang2的博客 442

Flask-WTF 表单处理详细教程(第六阶段)

Flask-WTF 是 Flask 框架的一个扩展,简化了 Web 表单的创建、处理和验证过程。本文将详细介绍如何使用 Flask-WTF,涵盖安装、创建表单、处理表单数据以及实现验证。希望这篇教程能够帮助你快速上手 Flask-WTF,并在你的 Flask 项目中实现强大的表单处理功能!下面,我们将创建一个简单的 Flask 应用程序,并构建一个用户注册表单。进一步的,Flask-WTF 还支持更多的高级功能,例如文件上传、Ajax 表单处理等。

蜡笔小新星的博客 1246
上一篇: Flask SQLAlchemy 脚本测试方法
下一篇: 在Docker容器中进行Flask应用的开发
SmallTankPy
博客等级 码龄10年 26粉丝 15原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值