如何使用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人员页面修改或样式调整

 

从URDF到仿真动画:基于Simulink、Simscape与S-Function的机械臂一体化建模与控制 本文详细介绍了从URDF文件到高保真仿真动画的一体化机械臂建模与控制流程。通过整合Simulink、Simscape与S-Function,构建了包含物理特性的虚拟机械臂模型,并实现了自适应滑模等高级控制算法的嵌入与验证。该流程打通了从机械设计到控制算法验证的闭环,为机器人开发提供了高效的仿真平台。 阅读详情

相关推荐

MSPM0G3507+逐飞库:5分钟搞定KEIL环境配置与LED闪烁(附常见错误解决)

本文详细介绍了如何使用MSPM0G3507微控制器和逐飞库快速配置KEIL开发环境,并实现LED闪烁功能。从芯片支持包安装、逐飞库工程配置到烧录调试,提供了完整的步骤和常见错误解决方案,帮助开发者5分钟内完成环境搭建。

lambda的博客 1195

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

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

霖hero 1689

链路聚合Eth-trunk以及华为交换机配置实例

链路聚合简介 以太网链路聚合Eth-Trunk简称链路聚合,它通过将多条以太网物理链路捆绑在一起成为一条逻辑链路,从而实现增加链路带宽的目的。同时,这些捆绑在一起的链路通过相互间的动态备份,可以有效地提高链路的可靠性。 目的: 随着网络规模不断扩大,用户对骨干链路的带宽和可靠性提出越来越高的要求。在传统技术中,常用更换高速率的接口板或更换支持高速率接口板的设备的方式来增加带宽,但这种方案需要付出高额的费用,而且不够灵活。 采用链路聚合技术可以在不进行硬件升级的条件下,通过将多个物理接口捆绑为一个逻辑接口

ChaseAug的博客 2万+

WTForms 使用指南

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

gitblog_00219的博客 979

ERA5数据批量下载

ERA5再分析数据的IDM接管下载

qq_38734327的博客 3034

从流体力学到深度学习:手把手教你用PINN预测涡流场(基于TensorFlow2.10+GPU)

本文详细介绍了如何利用物理信息神经网络(PINN)结合TensorFlow 2.10和GPU加速,预测Navier-Stokes方程的涡流场。通过核心原理讲解、实战环境配置、网络架构设计及物理约束实现,帮助读者掌握从流体力学到深度学习的跨学科技术应用,特别适合处理复杂流体问题和非定常流动场景。

weixin_29048309的博客 212

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

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

weixin_30617797的博客 586

DCDC电路断电时放电波形发生震荡和电压跳变问题,如何解决?

DCDC电路断电时放电波形发生震荡和电压跳变问题: 做的一个项目需要用单片机ADC采集电压,要让单片机感应到电压降到3.1V开始往FLASH里存数据,单片机2.4V基本上就工作不了,(根据单片机手册的,擦写的时间在40mS在左右)所以3.1V降到2.4V的时间必须要大于40mS岁以上,在单片机VCC处加了一个100nF的电容,理论仿真下来150mS左右发现存不进去,用示波器抓了一下波形,发现放电时震荡很严重,实际3.1V到2.4V时间只有10ms左右,这个肯定存不进去; 请教师傅说是应该时前级DCDC开关电

**My Coding Family** 1967

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

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

abc19991119的博客 1339

Winform中使用EasyPlayer-RTSP-Win开源组件实现播放RTSP视频流

场景 开源RTMP组件EasyPusher-Android+EasyDarwin实现APP推流给RTSP流媒体服务器: 开源RTMP组件EasyPusher-Android+EasyDarwin实现APP推流给RTSP流媒体服务器_BADAO_LIUMANG_QIZHI的博客-优快云博客 上面介绍了RTSP相关的开源组件,如果要在Windows中实现对RTSP视频流的播放, 可以使用开源组件EasyPlayer-RTSP-Win GitHub - tsingsee/EasyPlayer-RTSP

BADAO_LIUMANG_QIZHI的博客 1万+

Python爬虫实战:使用最新技术抓取百度贴吧帖子内容

本文详细介绍了使用Python最新技术抓取百度贴吧帖子的完整流程。通过库,我们实现了高效的异步爬虫,具备JavaScript渲染、智能反爬应对、数据持久化等高级功能。这个爬虫框架具有良好的扩展性,可以根据具体需求进行功能增强。

2201_76125261的博客 779

Flask中WTForm用法详解

Flask中WTForm用法详解

IT之一小佬的博客 2704

高通平台N4单路输入的720P相机预览

N4的一路720P Camera作为MIPI摄像头使用

llw21680的专栏 165

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

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

37、flask--WTForms的使用

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

qq_39432161的博客 367

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

Flask-WTForms表单验证

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

weixin_45905671的博客 336

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

Flask如何处理表单提交的数据

使用WTForms库定义表单类,WTForms是一个用于处理Web表单的库,它提供了丰富的表单字段和验证器。你可以通过继承FlaskForm(对于Flask 1.x及更高版本)或Form(对于较旧版本)来创建表单类,并在其中定义表单字段和验证规则。

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

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值