新闻中心
使用 Flask 在 HTML 表单提交后显示成功/失败消息

本文介绍如何使用 Flask 框架在 HTML 表单提交后向用户显示成功或失败的消息。我们将利用 Flask 的模板引擎和条件语句,根据表单提交的结果动态地在页面上呈现相应的消息,无需编写额外的 J*aScript 代码。
实现步骤
-
修改 Flask 路由函数: 在 Flask 路由函数中,根据表单处理的结果设置一个变量,用于传递给 HTML 模板。例如,如果邮件发送成功,则设置 msg_sent=True,否则设置 msg_sent=False。
from flask import Flask, render_template, request import smtplib MY_EMAIL = "your email" MY_PASSWORD = "your pw" app = Flask(__name__) @app.route('/', methods=["GET", "POST"]) def home(): if request.method == "POST": data = request.form print(data["name"]) print(data["email"]) print(data["phone"]) print(data["message"]) try: with smtplib.SMTP("smtp.gmail.com", port=587) as connection: connection.starttls() connection.login(user=MY_EMAIL, password=MY_PASSWORD) connection.sendmail( from_addr=MY_EMAIL, to_addrs=MY_EMAIL, msg=f"Subject:New Message\n\nName: {data['name']}\nEmail: {data['email']}\nPhone: {data['phone']}\nMessage: {data['message']}" ) msg_sent = True # 邮件发送成功 except Exception as e: print(f"邮件发送失败: {e}") msg_sent = False # 邮件发送失败 return render_template("index.html", msg_sent=msg_sent) return render_template("index.html", msg_sent=False) if __name__ == "__main__": app.run(debug=True)关键修改:
- 添加了 try...except 块来捕获邮件发送过程中的异常。
- 根据邮件发送是否成功,设置 msg_sent 变量的值。
-
修改 HTML 模板: 在 HTML 模板中使用 Jinja2 模板引擎的条件语句 ({% if ... %}),根据 msg_sent 变量的值显示不同的消息。
佳蓝在线销售系统(创业版) 佳蓝在线销售
1、对ASP内核代码进行DLL封装,从而大大提高了用户的访问速度和安全性;2、采用后台生成HTML网页的格式,使程序访问速度得到进一步的提升;3、用户可发展下级会员并在下级购买商品时获得差额利润;4、全新模板选择功能;5、后台增加磁盘绑定功能;6、后台增加库存查询功能;7、后台增加财务统计功能;8、后台面值类型批量设定;9、后台财务曲线报表显示;10、完善订单功能;11、对所有传输的字符串进行安全
0
查看详情
<!-- Contact--> <section class="resume-section" id="contact"> <div class="container"> <div class="resume-section-content"> <h2 class="mb-0">Contact Me</h2> <div class="subheading mb-5"> If you are interested in me, I would love to hear it. </div> </div> <form id="contactForm" action="{{ url_for('home') }}" method="post"> <div class="row align-items-stretch mb-5"> <div class="col-md-6"> <div class="form-group"> <!-- Name input--> <input class="form-control" id="name" name="name" type="text" placeholder="Your Name *" data-sb-validations="required" /> <div class="invalid-feedback" data-sb-feedback="name:required">A name is required.</div> </div> <div class="form-group"> <!-- Email address input--> <input class="form-control" id="email" name="email" type="email" placeholder="Your Email *" data-sb-validations="required,email" /> <div class="invalid-feedback" data-sb-feedback="email:required">An email is required.</div> <div class="invalid-feedback" data-sb-feedback="email:email">Email is no
t valid.</div>
</div>
<div class="form-group mb-md-0">
<!-- Phone number input-->
<input class="form-control" id="phone" name="phone" type="tel" placeholder="Your Phone *" data-sb-validations="required" />
<div class="invalid-feedback" data-sb-feedback="phone:required">A phone number is required.</div>
</div>
</div>
<div class="col-md-6">
<div class="form-group form-group-textarea mb-md-0">
<!-- Message input-->
<textarea class="form-control" id="message" name="message" placeholder="Your Message *" data-sb-validations="required"></textarea>
<div class="invalid-feedback" data-sb-feedback="message:required">A message is required.</div>
</div>
</div>
</div>
<!-- Submit success message-->
<!---->
<!-- This is what your users will see when the form-->
<!-- has successfully submitted-->
{% if msg_sent %}
<div class="text-center text-white mb-3">
<div class="fw-bolder">Form submission successful!</div>
</div>
{% else %}
<!-- Submit error message-->
<!---->
<!-- This is what your users will see when there is-->
<!-- an error submitting the form-->
<div class="text-center text-danger mb-3">Error sending message!</div>
{% endif %}
<!-- Submit Button-->
<div class="text-center">
<button class="btn btn-primary btn-xl text-uppercase" id="submitButton" type="submit">Send Message</button>
</div>
</form>
</div>
</section>关键修改:
- 移除了原有的 d-none 类的 div 元素,因为我们不再需要 J*aScript 来控制它们的显示。
- 添加了 {% if msg_sent %} 和 {% else %} 块,根据 msg_sent 的值显示不同的消息。 可以根据需要自定义成功和失败消息的内容和样式。
注意事项
- 确保已正确安装 Flask 和 smtplib 库。
- 替换 MY_EMAIL 和 MY_PASSWORD 为你自己的邮箱地址和密码。
- 建议使用环境变量来存储敏感信息,如邮箱密码,而不是直接硬编码在代码中。
- 此示例仅用于演示目的,实际应用中可能需要更完善的错误处理和安全措施。
- 可以根据需要自定义成功和失败消息的样式和内容。
总结
通过以上步骤,我们成功地使用 Flask 和 Jinja2 模板引擎实现了在 HTML 表单提交后显示成功/失败消息的功能,而无需编写额外的 J*aScript 代码。这种方法简单易懂,易于维护,适用于大多数 Web 应用场景。 记住,良好的用户体验至关重要,清晰明确的反馈消息能有效提升用户满意度。
以上就是使用 Flask 在 HTML 表单提交后显示成功/失败消息的详细内容,更多请关注其它相关文章!
# 文档
# 汤阴网站推广哪家好
# 惠安营销推广公司招聘
# 百度seo推广顾问
# 河源网站建设营销招聘
# 主要营销推广对象包括
# 开封企业品牌网站建设
# 固原seo公司方便火星
# 茂名网站建设代码是多少
# 观澜关键词排名优化价格
# 米线营销推广语怎么写简短
# 自己的
# 拖放
# 使用技巧
# 可以根据
# 自定义
# javascript
# 绑定
# 邮件发送
# 在线销售
# 表单
# red
# 表单提交
# 邮箱
# 环境变量
# 路由
# ai
# app
# 编码
# html
# java
# word
相关栏目:
【
科技资讯46185 】
【
网络学院92790 】
相关推荐:
sublime怎么格式化代码_sublime代码美化与一键排版插件配置
C++如何操作注册表_Windows平台下C++读写注册表的API函数详解
Windows10怎么开启存储感知 Windows10系统设置自动清理临时文件释放C盘空间【教程】
NRF24L01数据传输深度解析:解决大载荷接收异常与分包策略
C++如何实现一个智能指针_手动实现C++ shared_ptr的引用计数功能
可靠CSGO开箱平台解析 CSGO开箱网合集
4399网页游戏电脑版全新入口 4399电脑端在线玩指南
J*a应用程序首次运行自动创建文件与目录的最佳实践
三星ZFold5多任务卡顿_Samsung ZFold5流畅度提升
正确连接J*aScript到HTML实现可点击图片与自定义事件处理
中兴BladeV30怎样用测距估书架层高_iPhone中兴BladeV30测距估书架层高【家装参考】
内存检查:在VS Code中调试C++时的内存视图
哔哩哔哩忘记密码了怎么找回_哔哩哔哩密码找回方法
在python-socketio事件处理器中安全访问Flask应用上下文
UC浏览器如何安装插件 UC浏览器添加扩展程序详细教程【进阶】
Golang如何实现微服务鉴权与权限控制_Golang微服务鉴权与权限管理实践
J*aScript中管理异步API调用:确保操作顺序与数据一致性
Win11怎么安装Linux子系统 Win11 WSL2安装Ubuntu及环境配置指南
sublime侧边栏怎么增强功能_SideBarEnhancements for sublime安装与配置
J*aScript map 迭代中检测空数组元素的有效方法
打开就能玩的植物大战僵尸 植物大战僵尸网页版传送门
如何在Promise链中有效终止错误处理后的执行
微博网页版官方账号登录 微博网页版内容浏览使用指南
AO3最新可访问网址 Archive of Our Own官方在线入口
Angular Material 垂直步进器:实现底部到顶部排序的教程
小米汽车11月交付量突破40000台!雷军:将继续努力
Angular中单选按钮的正确使用与常见陷阱解析
谷歌浏览器怎么给标签页静音_Chrome标签静音快捷操作
MongoDB Aggregation:在嵌套对象数组中精确匹配ObjectId
修复二维数组索引越界异常:一维循环到二维坐标的正确映射
J*a中实现Go语言select通道多路复用机制
铁路12306官网网页端快速入口 铁路12306官方首页登录教程
《GTA6》开发画面疑似泄露!这次可不是AI了
cad怎么合并重叠的线段_cad清理重复重叠线条的操作方法
Bing引擎入口最新2025 Bing搜索免费官方登录
ACG动漫手机版官网入口 手机ACG动漫APP在线观看正版
EMS快递官网app_中国邮政速递物流手机客户端
AWS EC2实例间SQL Server连接超时:安全组配置与故障排除指南
qq浏览器打开空白页怎么办 qq浏览器启动后显示白屏的解决教程
抖音隐秘迷城小游戏入口_ 抖音冒险解谜小游戏秒玩
Lar*el DB::listen 事件中的查询执行时间单位解析
Tailwind CSS line-clamp 布局问题解析与修复指南
J*a TimerTask文件监控:HashMap状态管理与常见陷阱规避指南
生成rdflib自定义SPARQL函数:参数匹配与实践指南
微信网页版扫码登录入口 微信网页版二维码登录入口
Pandas DataFrame 多条件优先级排序与排名
Go语言中高效处理x-www-form-urlencoded表单数据
智慧团建扫码登录入口 智慧团建扫码登录入口官网版
《铁拳8》黑皮辣妹新实机:元气满满的18岁少女!
Kafka Streams中基于消息头条件过滤消息的实现指南


2025-11-21
浏览次数:次
返回列表
t valid.</div>
</div>
<div class="form-group mb-md-0">
<!-- Phone number input-->
<input class="form-control" id="phone" name="phone" type="tel" placeholder="Your Phone *" data-sb-validations="required" />
<div class="invalid-feedback" data-sb-feedback="phone:required">A phone number is required.</div>
</div>
</div>
<div class="col-md-6">
<div class="form-group form-group-textarea mb-md-0">
<!-- Message input-->
<textarea class="form-control" id="message" name="message" placeholder="Your Message *" data-sb-validations="required"></textarea>
<div class="invalid-feedback" data-sb-feedback="message:required">A message is required.</div>
</div>
</div>
</div>
<!-- Submit success message-->
<!---->
<!-- This is what your users will see when the form-->
<!-- has successfully submitted-->
{% if msg_sent %}
<div class="text-center text-white mb-3">
<div class="fw-bolder">Form submission successful!</div>
</div>
{% else %}
<!-- Submit error message-->
<!---->
<!-- This is what your users will see when there is-->
<!-- an error submitting the form-->
<div class="text-center text-danger mb-3">Error sending message!</div>
{% endif %}
<!-- Submit Button-->
<div class="text-center">
<button class="btn btn-primary btn-xl text-uppercase" id="submitButton" type="submit">Send Message</button>
</div>
</form>
</div>
</section>