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

Flask路由规则报错:ValueError: malformed url rule问题求助

Flask路由错误修正方案

问题原因

你遇到的ValueError: malformed url rule: '/<King Solomon>'错误,是因为Flask路由规则写法不符合规范:

  • 路由里的<King Solomon>试图定义变量,但变量名不能包含空格,违反了Flask路由变量的命名规则(变量名仅支持字母、数字、下划线)。
  • 你的需求是匹配固定路径/King Solomon,却错误使用了路由变量的<>语法,导致框架识别为无效规则。
  • 函数user定义了name参数,但当前路由没有传递该参数的逻辑,即使路由合法也会触发参数不匹配的错误。

修正方案

根据你的需求,提供两种实现方式:

方式一:固定匹配/King Solomon路径

直接将路由写为固定路径,函数无需参数,直接返回指定内容:

from flask import Flask

app = Flask(__name__)

@app.route('/King Solomon')
def user():
    return "Hello King Solomon!"

if __name__ == "__main__":
    app.run()

启动服务后,访问http://localhost:5000/King Solomon即可返回Hello King Solomon!。

方式二:支持动态用户名(扩展方案)

如果想让路由支持任意用户名(比如/Alice返回Hello Alice!,/Bob返回Hello Bob!),需使用合法的路由变量(变量名无空格),并保证函数参数与变量名一致:

from flask import Flask

app = Flask(__name__)

@app.route('/<name>')
def user(name):
    return f"Hello {name}!"

if __name__ == "__main__":
    app.run()

此时访问http://localhost:5000/King Solomon,框架会自动将King Solomon作为name参数传递给函数,返回Hello King Solomon!。如果需要支持包含斜杠的复杂用户名,可使用path转换器:

@app.route('/<path:name>')
def user(name):
    return f"Hello {name}!"

内容的提问来源于stack exchange,提问作者D. Solomon K. Youhn

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 05:27:20