当前位置: 首页 > wzjs >正文

旅游企业公司网站建设百度一下你就知道移动首页

旅游企业公司网站建设,百度一下你就知道移动首页,匿名聊天网站开发,网站改版404页面在 Flask 中,WTForms 是一个用于 处理表单验证 的库,可以与 Flask 结合,提供表单验证、数据清理、错误提示等功能。 1. 安装 Flask-WTF 首先安装 Flask-WTF: pip install Flask-WTFFlask-WTF 是 WTForms 的 Flask 扩展&#xff…

在 Flask 中,WTForms 是一个用于 处理表单验证 的库,可以与 Flask 结合,提供表单验证、数据清理、错误提示等功能。


1. 安装 Flask-WTF

首先安装 Flask-WTF

pip install Flask-WTF

Flask-WTFWTForms 的 Flask 扩展,提供了 CSRF 保护Flask 兼容的表单处理


2. 基本使用

(1) 创建 Flask 应用

from flask import Flask, render_template, request, redirect, flash
from flask_wtf import FlaskForm
from wtforms import StringField, PasswordField, SubmitField
from wtforms.validators import DataRequired, Length, Email, EqualToapp = Flask(__name__)
app.config['SECRET_KEY'] = 'your_secret_key'  # 必须设置,否则 CSRF 保护无法使用

(2) 定义表单

使用 FlaskForm 继承 WTForms,定义表单字段和验证规则:

class LoginForm(FlaskForm):email = StringField('邮箱', validators=[DataRequired(), Email()])password = PasswordField('密码', validators=[DataRequired(), Length(min=6, max=12)])submit = SubmitField('登录')

DataRequired() 不能为空
Email() 必须是合法邮箱格式
Length(min=6, max=12) 密码长度 6-12 位


(3) 创建视图

表单处理逻辑

@app.route('/login', methods=['GET', 'POST'])
def login():form = LoginForm()if form.validate_on_submit():  # 检查表单是否有效email = form.email.datapassword = form.password.dataflash(f'用户 {email} 登录成功', 'success')return redirect('/success')  # 登录成功跳转return render_template('login.html', form=form)

form.validate_on_submit() 自动检查 POST 数据是否符合验证规则
flash() 用于在前端显示错误或成功信息
form.email.data 获取表单数据


(4) 编写 HTML 表单

templates/login.html

<!DOCTYPE html>
<html lang="zh">
<head><meta charset="UTF-8"><title>登录</title>
</head>
<body><h1>登录</h1>{% with messages = get_flashed_messages(with_categories=true) %}{% if messages %}{% for category, message in messages %}<p style="color: {{ 'green' if category == 'success' else 'red' }}">{{ message }}</p>{% endfor %}{% endif %}{% endwith %}<form method="POST">{{ form.hidden_tag() }}  {# CSRF 保护 #}<p>{{ form.email.label }} <br>{{ form.email(size=30) }} <br>{% for error in form.email.errors %}<span style="color:red;">{{ error }}</span>{% endfor %}</p><p>{{ form.password.label }} <br>{{ form.password(size=30) }} <br>{% for error in form.password.errors %}<span style="color:red;">{{ error }}</span>{% endfor %}</p><p>{{ form.submit() }}</p></form>
</body>
</html>

{{ form.hidden_tag() }} 用于 CSRF 保护
form.email(size=30) 渲染表单输入框
for error in form.email.errors 显示验证错误


3. 复杂表单示例(注册表单)

支持 两次密码一致性验证

class RegisterForm(FlaskForm):username = StringField('用户名', validators=[DataRequired(), Length(min=3, max=20)])email = StringField('邮箱', validators=[DataRequired(), Email()])password = PasswordField('密码', validators=[DataRequired(), Length(min=6, max=12)])confirm_password = PasswordField('确认密码', validators=[DataRequired(), EqualTo('password', message="两次密码不一致")])submit = SubmitField('注册')

EqualTo('password') 验证两次密码一致
message="两次密码不一致" 自定义错误提示

注册视图:

@app.route('/register', methods=['GET', 'POST'])
def register():form = RegisterForm()if form.validate_on_submit():flash(f'用户 {form.username.data} 注册成功', 'success')return redirect('/login')return render_template('register.html', form=form)

4. 自定义验证器

可以自定义表单验证逻辑。例如:检查用户名是否已存在

from wtforms.validators import ValidationErrorclass UniqueUsername:"""自定义验证器,检查用户名是否已被使用"""def __init__(self, message=None):if not message:message = "该用户名已被占用"self.message = messagedef __call__(self, form, field):existing_users = ["admin", "test"]  # 假设数据库已有的用户名if field.data in existing_users:raise ValidationError(self.message)class RegisterForm(FlaskForm):username = StringField('用户名', validators=[DataRequired(), Length(min=3, max=20), UniqueUsername()])email = StringField('邮箱', validators=[DataRequired(), Email()])password = PasswordField('密码', validators=[DataRequired(), Length(min=6, max=12)])confirm_password = PasswordField('确认密码', validators=[DataRequired(), EqualTo('password')])submit = SubmitField('注册')

UniqueUsername() 检查用户名是否已注册
raise ValidationError(self.message) 触发错误


5. 结论

  1. Flask-WTFWTForms 的 Flask 扩展,提供 表单验证、CSRF 保护
  2. FlaskForm 定义表单字段 & 验证规则,如 DataRequired()Email()
  3. form.validate_on_submit() 自动检查表单数据
  4. HTML 使用 form.hidden_tag() 保护 CSRF,用 form.errors 显示错误
  5. 支持自定义验证器,如检查用户名是否唯一。

Flask + WTForms 让表单验证更安全、更易用!🚀


文章转载自:

http://WMVD0k79.hmfxL.cn
http://GEiVsl5R.hmfxL.cn
http://e3O4U03v.hmfxL.cn
http://Zjc7IBxv.hmfxL.cn
http://8F6Lvt1P.hmfxL.cn
http://2i0PWxWd.hmfxL.cn
http://aggsjB3p.hmfxL.cn
http://kw2z15EL.hmfxL.cn
http://ZVqH4vy1.hmfxL.cn
http://Vxp4Ohwf.hmfxL.cn
http://os5pAA6z.hmfxL.cn
http://Bq6R6oy1.hmfxL.cn
http://kcfTEvYV.hmfxL.cn
http://LQDPoSJ9.hmfxL.cn
http://GGG4Z0oQ.hmfxL.cn
http://CJXfpqZR.hmfxL.cn
http://xrHQ8OHU.hmfxL.cn
http://jlvK9hja.hmfxL.cn
http://k6SBdNgy.hmfxL.cn
http://PHaEy0eP.hmfxL.cn
http://MQd5vPyV.hmfxL.cn
http://ZWnTNf3t.hmfxL.cn
http://J3pb2dd9.hmfxL.cn
http://9NsQljvq.hmfxL.cn
http://vVxuBPd6.hmfxL.cn
http://cbwap4Lj.hmfxL.cn
http://WUFVuzZt.hmfxL.cn
http://rkO5PRB0.hmfxL.cn
http://BtvL7qJn.hmfxL.cn
http://xtbZhrBF.hmfxL.cn
http://www.dtcms.com/wzjs/612170.html

相关文章:

  • 猎头做单都有什么网站郑州做网站九零后网络
  • 教做糕点的网站江西加油app下载官网
  • 网站做外链好嘛wordpress美化版
  • 毕节市住房和城乡建设局网站北京电力交易中心 庞博
  • 做都是正品的网站很难吗浙江新手网络推广
  • 网站推广的策略个人域名申请的方法
  • 微网站开发平台案例html写一个简单购物页面
  • wdcp网站备份网站建设检查整改情况报告
  • 老版本网站开发工具wordpress 没有样式表
  • 西安做网站陕西必达福州建设厅官方网站
  • 在灵璧怎样做网站那个网站域名估价好
  • 网站免费推广平台宁夏交通建设质监局官方网站
  • 哪个行业最容易做网站社保网站做员工用工备案
  • 滕州市中远建设工程公司网站首页做网站群
  • 怎样在一个虚拟服务器里做两个网站服务好的南昌网站建设
  • 深圳深度网站建设中美网站建设
  • 织梦网站最下面的网站建设去除溧阳城乡建设厅网站
  • 找婚庆公司去什么网站深圳住房和建设局网站官网
  • 免费word模板网站关键词文案生成器
  • 站外推广策划书网页制作与网站建设实战大全 pdf下载
  • 郑州做网站公司+卓美有限公司属于什么企业类型
  • 高端手机网站 制作公司长沙黄页
  • 如何开网站赚钱银川网站建设哪家价格低
  • 相亲网站拉人做基金三明建设局网站
  • 企业门户网站管理办法wordpress主题学习
  • 电商网站服务器空间网站报404错误怎么解决办法
  • 成都网站建设常见问题坦克大战网站开发课程设计报告
  • 做网站做哪个网站首页html代码的标签
  • 运动类网站wordpress 上传附件
  • 衡水做wap网站的地方青岛市北区网站制作公司