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

Flask路由匹配顺序疑问:同路径路由为何仅执行第一个视图函数?

Flask同路径路由匹配问题解答

这是因为Flask的路由匹配是按注册顺序从上到下进行的——当多个视图函数绑定了同一个URL路径时,Flask只会调用第一个被注册的那个,后续的同路径路由会被直接忽略。

你在代码里先定义了@app.route('/')装饰的hello_world函数,之后才定义了同样绑定/的home函数。当你访问根路径/时,Flask会优先匹配到先注册的hello_world,执行它并返回"Hello, world!",后面的home函数完全不会被触发,所以只有注释掉hello_world后,home才会生效。

解决方法很简单:

  • 把home函数的定义(包括@app.route('/')装饰器)移到hello_world的前面,让它先被注册;
  • 直接删除或注释掉不需要的hello_world路由;
  • (不推荐)手动修改Flask的路由映射表,但这种操作没必要,调整定义顺序就足够解决问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 10:18:08