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

Flask博客开发报错:post_route()缺少必填参数post_slug

解决Flask博客打开文章时的TypeError问题

问题现象

在Flask博客项目中,点击首页文章链接进入详情页时,抛出以下错误:

TypeError: post_route() missing 1 required positional argument: 'post_slug'

错误原因

后端的文章详情路由未正确定义URL参数捕获规则:
原路由代码:

@app.route("/post/", methods=['GET'])
def post_route(post_slug):
    post = Posts.query.filter_by(slug=post_slug).first()
    return render_template('post.html', params=params, post=post)

路由/post/没有设置参数占位符,Flask无法将URL中/post/后的文章slug值传递给视图函数的post_slug参数,导致参数缺失错误。而模板中生成的链接是/post/{{post.slug}}(如/post/my-first-post),与路由规则不匹配。

修复步骤

修改文章详情的路由定义,添加字符串类型的参数占位符<string:post_slug>,让Flask能够捕获URL中的slug参数:

@app.route("/post/<string:post_slug>", methods=['GET'])
def post_route(post_slug):
    post = Posts.query.filter_by(slug=post_slug).first()
    return render_template('post.html', params=params, post=post)
  • <string:post_slug>表示匹配URL中/post/之后的任意字符串,并将其赋值给视图函数的post_slug参数
  • 确保路由末尾不要保留多余的斜杠,否则会与模板生成的URL格式不匹配

验证

修改后重启Flask服务,点击首页文章链接,即可正常加载对应文章的详情页。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 13:02:45