You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flask框架路由重定向失败无法跳转至/success路径问题求助

问题根源

/success路由仅允许POST请求,但Flask的redirect函数默认触发GET请求,请求方法不匹配导致无法进入对应路由,所以看不到success路由里的print输出,浏览器侧实际会返回405 Method Not Allowed错误。

修复步骤

1. 修改路由配置

修改application.py中/success路由的允许方法,同时建议用url_for生成重定向地址,避免硬编码路径出错:

# 顶部如果没导入对应依赖,补充:from flask import Flask, request, render_template, redirect, url_for
@app.route("/success", methods=["GET"])
def success():
    print("Please work")
    return render_template("success.html", registrants = REGISTRANTS)

# 同时把index函数里的重定向语句改成
return redirect(url_for('success'))

2. 修复success.html的两个小问题

  • 第一行补充继承layout的声明,否则不会复用基础布局
  • 删除未传参的hello, {{name}}. Thanks for Registering for {{sport}}!行,如果你想显示当前注册用户的信息,可以在重定向时通过查询参数传值,或者用session存储,修改后的参考代码如下:
{% extends "layout.html" %}
{% block body %}
<h1>Registrants</h1>
<table style="border: 2px solid black">
    <thead>
        <tr style="border: 2px solid black">
            <th style="border: 2px solid black">Name</th>
            <th style="border: 2px solid black">Sport</th>
        </tr>
    </thead>
    <tbody>
        {% for name in registrants %}
            <tr style="border: 2px solid black">
                <td style="border: 2px solid black">{{name}}</td>
                <td style="border: 2px solid black">{{registrants[name]}}</td>
            </tr>
        {% endfor %}
    </tbody>
</table>
{% endblock %}

修改完成后提交表单就能正常跳转到success页面,也能看到对应print输出。

内容的提问来源于stack exchange,提问作者Nisarg Kudgunti

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 00:45:03