
Flask 表单默认提交到根路径(如 action=".")会导致跳转至 /,破坏路由一致性;只需将表单 action 显式设为当前路由(如 "/melting2"),即可确保 GET/POST 均在同一路由内处理。
flask 表单默认提交到根路径(如 `action="."`)会导致跳转至 `/`,破坏路由一致性;只需将表单 `action` 显式设为当前路由(如 `"/melting2"`),即可确保 get/post 均在同一路由内处理。
在 Flask 开发中,一个常见误区是:为某个自定义路由(如 /melting2)编写了完整的 GET/POST 处理逻辑,但表单提交后却意外跳转到了首页 /。根本原因在于 HTML 表单的 action 属性未正确配置。
默认情况下,
此外,为提升健壮性与可维护性,建议进一步优化代码:
- ✅ 使用 url_for() 动态生成 URL(推荐用于大型项目):
from flask import url_for # 在返回 HTML 字符串前: form_action = url_for('add_page_melting') # 需确保函数名已注册为 endpoint - ✅ 避免裸 except:,改用具体异常类型(如 ValueError);
- ✅ 对用户输入做空值校验(如 if not request.form.get("number1"));
- ✅ 返回结果页时,建议复用同一模板或重定向 + 消息闪现(flash() + redirect()),而非拼接 HTML 字符串。
最后提醒:Flask 路由匹配严格依赖 URL 路径与 HTTP 方法。只要表单 action 与 @app.route() 装饰器声明的路径完全一致,且方法包含 "POST",请求就必然进入对应视图函数——这是 Flask 路由机制的核心保障。










