如何使用WTForms渲染表单?

Flask框架之WTForms(详解) Flask框架之WTForms(详解)包括:WTForms介绍和基本使用WTForms介绍基本使用WTForms表单验证的基本使用WTForms常用验证器WTForms自定义验证器场景:验证码实现WTForms渲染模版常用的方法代码示例 阅读详情

记得在之前《如何使用WTForms对表单进行验证?》一文中跟大家讲过,WTFroms不仅可以做表单验证,还可以做模板渲染,本节就为大家讲讲如何使用WTForms渲染表单?

新建一个flask_wtf_demo flask 项目,其代码如下:

from flask import Flask,render_template

app = Flask(__name__)

@app.route("/")
def index():
    return "index page"

@app.route("/login")
def login():
    return render_template("login.html")

if __name__ == "__main__":
    app.run(debug=True)

注:由于我们只做模板渲染,所以这里就不考虑POST方法。

然后在templates文件下新建一个login.html文件,其代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<form action="" method="post">
    <table>
        <tr>
            <td>用户名</td>
            <td><input type="text" name="username"></td>
        </tr>
        <tr>
            <td><input type="submit" name="登录"></td>
        </tr>
    </table>
</form>
</body>
</html>

运行主app文件,结果如下:

然后我们在项目下新建一个forms文件,用于放表单验证代码。forms.py文件代码如下:

from wtforms import Form,StringField
from wtforms.validators import InputRequired

class LoginForm(Form):
    username = StringField(validators=[InputRequired()])

定义好了forms.py文件,我们在主app文件导入LoginForm这个类

from forms import LoginForm

然后实例化一个LoginForm对象,赋给form变量,并将其传入模板中!

@app.route("/login")
def login():
    form = LoginForm(request.form)
    return render_template("login.html",form=form)

打开login.html文件,找到下方代码:

 <td>用户名</td>
 <td><input type="text" name="username"></td>

把它替换成下面代码:

<td>{{ form.username.label }}</td>
<td>{{ form.username() }}</td>

再运行主app文件,结果如下:

结果和上面结果基本一样,唯一区别就是上面显示的是用户名,而下方却是Username,为什么会出现这样的结果呢?原因是我们没有指定这个字段label名称,它会自动采用我们forms中定义的username字段,然后将其首字母大写显示到网页中。有的人可能会问?哪我们如何使用自定义字段名字呢?方法很简单,我们在froms.py定义验证字段的时候,在前面输入自定义名称即可!代码如下:

username = StringField("请输入用户名",validators=[InputRequired()])

再运行主app文件,结果如下:

怎么样?看完觉得是不是很简单??

最后一个问题,我们这个表单界面太low了,我们要加点自定义样式(比如想给这文本框文字加个红色)怎么添加?方法如下:

1、先定义样式(这里以class选择器为例),代码如下:

.to_red{color:red;}

2、然后在 form.username()调用样式代码,代码如下:

{{ form.username(class="to_red") }}

再运行主app文件,在文本框输入文字测试一下效果:

最后的最后,总结一下用WTForms渲染模板的好处与坏处。

好处:少些代码

坏处:当网站页面需要调整、改版时,不利于web人员页面修改或样式调整

 

别再手动对照了!用Python+ArcGIS Pro一键搞定三调数据转土地三大类 本文介绍如何利用Python和ArcGIS Pro实现三调数据向土地三大类的自动化转换,大幅提升国土空间规划和土地变更调查的工作效率。通过封装分类规则为Python函数并集成到ArcGIS Pro脚本工具中,解决了传统手动操作耗时且易错的问题,适用于大规模数据处理场景。 阅读详情

相关推荐

通讯接口应用笔记3:使用W5500实现Modbus TCP服务器

  前面我们设计实现了W5500的驱动程序,也讲解了驱动的使用方式。在最近一次的项目应用中,正好有一个使用W5500实现TCP通讯的需求,所以我们就使用该驱动程序轻松实现。这一篇中我们就来说一说基于我们W5500通讯驱动程序实现TCP通讯的过程。 1、应用需求   在本次应用中,要求实现一个基于W5500的Modbus TCP服务器。这个需求的描述虽然只有一句话,但是这个需求的内容可不简单。我们首先来分析一下这个需求的具体内容。   为了实现基于W5500的Modbus TCP服务器,我们必先须基于W550

木南创智 5499

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

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

霖hero 1689

231003-四步MacOS-iPadOS设置无线竖屏随航SideCar

新建虚拟屏幕参考文献。

专注机器学习之路 7486

WTForms 使用指南

WTForms 是一个灵活的表单处理库,专为 Python Web 开发设计。它允许开发者以声明式的方式创建表单,处理验证和数据绑定。这个库支持多种Web框架,包括 Flask 和 Django,使得表单处理变得简单而强大。WTForms 提供了丰富的字段类型、验证器以及自定义能力,是构建任何需要用户输入的应用程序时的强大工具。 ## 项目快速启动 ### 安装WTForms 首先,你需要安

gitblog_00219的博客 979

数据库行转列的sql语句

 问题描述假设有张学生成绩表(CJ)如下Name Subject Result张三 语文 80张三 数学 90张三 物理 85李四 语文 85李四 数学 92李四 物理 82现在 想写  sql 语句     查询后结果 为    姓名 语文 数学 物理张三 80 90 85李四 85 92 82       该怎么实现 ?研究意义        这是个并不复杂的问题,但却是数

jb303的专栏 2248

TMS320C6678开发笔记1-6---C6678单核烧写程序

第6节 单核烧写加载程序 6.1节 TI参考文档 参考文档:《KeystoneI Bootloader Resources and FAQ》讲的非常好,建议一定要看 https://processors.wiki.ti.com/index.php/KeystoneI_Bootloader_Resources_and_FAQ#Direct_Boot_Examples_.28without_IBL.29 里面有三个工程: C6678 EVM SPI boot example C6657 EVM ..

kunkliu的博客 5695

Flask--wtforms快速使用和表单验证(附示例)

一、Form类   表单提供WTForms中最高级别的API。它们包含您的字段定义,委托验证,获取输入,聚合错误,并且通常用作将所有内容组合在一起的粘合剂。 classwtforms.form.Form 声明式表格基类。 __init__(formdata=None, obj=None, prefix='', data=None, meta=None, **kwargs) formd...

weixin_30617797的博客 586

利用 SAP Joule 提升 ABAP 开发效率的前提条件与限制全解析

综上,想要在 ABAP Development Tools 中顺利使用 SAP Joule,既要准备好 BTP、IAS、ABAP 系统与 ADT 的版本与信任链,也要理解许可证、配额、语法范围等限制。只有在这些前提全部满足后,Joule 才能真正发挥生成式 AI 的价值,帮助 ABAP 开发者从繁琐模板中解放出来,把注意力投入在业务创新与 Clean Core 改造之上。未来 SAP 还将扩展中文语境、自动修复建议以及跨系统智能代理等功能,值得持续关注。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 663

Flask框架【WTForms介绍和基本使用、WTForms自定义验证器、WTForms渲染模版】(八)

Flask框架【WTForms介绍和基本使用、WTForms自定义验证器、WTForms渲染模版】(八)

abc19991119的博客 1339

安全与加密常识(10)linux系统证书管理

1. 将自定义CA证书(如my-ca.crt)放到源目录# 2. 编辑配置文件,启用该证书(末尾添加一行 my-ca.crt)# 3. 执行命令同步(核心工作环节)# 4. 验证结果:检查是否生成哈希链接和合并到证书束ls /etc/ssl/certs/my-ca.pem # 证书文件ls /etc/ssl/certs/$(openssl x509 -hash -noout -in /usr/share/ca-certificates/my-ca.crt).0 # 哈希链接。

二进制君 283

PCL点云库入门(第1讲)——PCL库简介和安装(Win10/11+VS2019+PCL 1.12.0)

PCL,全称为,即点云库,是一个专注于2D/3D图像和点云处理的大型开源项目。该项目最初由斯坦福大学的杰出计算机视觉专家Radu博士及其团队开发和维护,经过十余年的发展,目前(2024年12月)已更新至1.14.1版本。PCL点云库集成了众多尖端的点云处理算法,这些算法不仅包括基础的滤波、特征估计、表面重建、配准、模型拟合和分割等,还涵盖了更高级的功能,如点云数据的语义理解、场景解析以及动态环境下的实时处理。这些算法能够对含有噪声的点云数据进行有效过滤,去除异常值;

qq_36812406的博客 1万+

Flask中WTForm用法详解

Flask中WTForm用法详解

IT之一小佬的博客 2704

40、5G NR射频要求解析

本文详细解析了5G NR射频相关要求,包括参考灵敏度与动态范围的定义、接收机对干扰信号的抗扰性要求(如阻塞、邻道选择性等)、辐射射频要求在FR1和FR2频段的差异,以及多标准无线电基站(MSR)的发展及其对射频要求的影响。内容涵盖测试模型、干扰场景、具体指标和实现挑战,为理解和应用5G NR射频规范提供了全面指导。

qsc901234的博客 245

Python WTForms 2.0 发布

WTForms 是一个 Python 表单验证、渲染开发包。WTForms 2.0 于2014年5月发布,这是继 WTForms 1.0.5 之后第一个重要的版本。 新特性 Class Meta 可以从多方面定制 WTFormsCSRF 和 i18n 由扩展变成核心特性Widget 渲染变更 不推荐使用的API 这些API仍然有效,但在很多情况下,会引发弃用警告。这些API

digwtx的专栏 842

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

37、flask--WTForms的使用

这个库一般有两个作用。第一个就是做表单验证,把用户提交上来的数据进行验证是否合法。第二个就是做模版渲染。 一、做表单验证: 自定义一个表单类,继承自wtforms.Form类。 定义好需要验证的字段,字段的名字必须和模版中那些需要验证的input标签的name属性值保持一致。 在需要验证的字段上,需要指定好具体的数据类型。 在相关的字段上,指定验证器。 以后在视图中,就只需要使用这个表单类的对象,并且把需要验证的数据,也就是request.form传给这个表单类,以后调用f...

qq_39432161的博客 367

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Flask-WTForms表单验证

WTForms表单验证 Flask-WTF Flask-WTF是简化了WTForms操作的一个第三方库 WTForms表单的两个主要功能是验证用户提交数据的合法性以及渲染模板。 还包括一些其他的功能: CSRF(跨站点请求伪造(Cross Site Request Forgery))保护,文件上传等。 安装Flask-WTF默认也会安装WTForms,因此使用以下命令来安装Flask-WTF pi...

weixin_45905671的博客 336

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Flask笔记:WTForms

文章目录使用Flask-WTF处理表单1. 安装2. 创建表单类3. 在模板中渲染表单3.1 传入表单实例3.2 在模板中渲染表单附:常用WTForms字段常用的 WTForms 验证器 使用Flask-WTF处理表单 WTForms 是一个使用 Python 编写的表单库, 它使得表单的定义、验证(服务器端) 和处理变得非常轻松。Flask-WTF 集成了 WTForms,使用它可以在 Flas...

Crazy_zh的博客 636

Day081 在Python的Flask中使用WTForms表单框架的基础教程[转]

由于该文章总结的比较全面,对我的 flask 项目很有帮助。为方便以后复习用故转载在此。 以下内容转自 脚本之家 作者:digwtx 文章连接:https://www.jb51.net/article/86123.htm WTForms由Python写成,为表单而生,提供了很多制作Web表单的实用API,和Flask框架结合使用效果拔群,这里我们就一起看一下...

Melody_92的博客 485

python web开发-Flask表单处理

本文全面介绍了Flask中的表单处理技术,重点讲解了WTForms库的使用方法。内容包括基础HTML表单处理、WTForms表单创建与验证、表单渲染与处理流程、高级功能(如自定义验证器和文件上传)、数据库集成以及CSRF防护等关键知识点。文章还提供了代码示例展示如何在实际项目中应用这些技术,并介绍了表单测试的基本方法。通过学习本文,开发者可以掌握Flask中从基础到高级的表单处理技能,构建安全可靠的Web应用表单系统。

人工智能微客/aiweker 812

Tornado框架WTForms的使用

Tornado框架WTForms的使用 – 潘登同学的Tornado学习笔记 文章目录Tornado框架WTForms的使用 -- 潘登同学的Tornado学习笔记WTForms表单验证报错解决WTForm渲染模板WTForms结合peewee最重要一点 WTForms表单验证 官方文档: https://wtforms.readthedocs.io/en/2.3.x/ pip install wtforms-tornado # 创建表单类 from wtforms_tornado import Form

weixin_52185313的博客 1092

html 表单验证 flask,使用 WTForms 进行表单验证

### 导航- [索引](# "总目录")- [下一页](# "模板继承") |- [上一页](# "视图装饰器") |- [Flask 0.10.1 文档](#) »- [Flask 代码模式](#) »# 使用 WTForms 进行表单验证如果您不得不跟浏览器提交的表单数据打交道,视图函数里的代码将会很快变得难以阅读。有不少的代码库被开发用来简化这个过程的操作。其中一个就是 [WTForms]...

weixin_30322901的博客 372

bootstrap form表单提交_Flask:表单

摘自 李辉《Flask Web开发实战:入门、进阶与原理解析》WTForms支持在Python中使用类定义表单,然后直接通过类定义生成对应的HTML代码。使用Flask-WTF处理表单扩展Flask-WTF集成了WTForms,使用它可以在Flask中更方便地使用WTForms。Flask-WTF将表单数据解析、CSRF保护、文件上传等功能与Flask集成。Flask-WTF默认为每个表单启用CS...

weixin_42496830的博客 1307

Flask---wtforms使用、信号

简单示例 基本使用 渲染 校验 自定义Form组件 信号 简单示例 from flask import Blueprint,render_template,request,session,redirect from ..utils.sql import SQLHelper account = Blueprint('account',__name__) from...

全干工程师 985

Flack之 WTForms

WTForms插件 这个插件库主要有两个作用。 第一个是做表单验证,将用户提交上来的数据进行验证是否符合系统要求。 第二个是做模版渲染。 (了解即可) Flask-WTF Flask-WTF是简化了WTForms操作的一个第三方库。 WTForms表单的两个主要功能是验证用户提交数据的合法性以及渲染模板。 而Flask-WTF还包括一些其他的功能:CSRF保护,文件上传等。 安装Flask...

why404 832

WTForms模块

下载安装 pip install WTForms 主要概念 Forms:Forms类是WTForms的核心容器。表单(Forms)表示域(Fields)的集合,域能通过表单的字典形式或者属性形式访问。 Fields:Fields(域)做最繁重的工作。每个域(Field)代表一个数据类型,并且域操作强制表单输入为响应的数据类型。例如,InputRequired和StringField表示两种不同的数据类型。域除了包含的数据之外,还包含大量有用的属性,例如标签、描述、验证错误的列表。 Validators:V

冰度猎魂的博客 767

Flask-WTForms

Flask-WTF是简化了WTForms操作的一个第三方库。WTForms表单的两个主要功能是验证用户提交数据的合法性以及渲染模板。还有其它一些功能:CSRF保护, 文件上传等。安装方法:pip install flask-wtf 1.1.WTForms简单验证 from flask import Flask,request,render_template fro...

weixin_30556161的博客 86
上一篇: pycharm 2017 如何激活?
下一篇: cookie 有效域名如何设置??
现在叫阿汤哥
博客等级 码龄10年 78粉丝 57原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值