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

Flask中访问/modify//路径出现404错误,数据展示更新功能异常

解决Flask访问/modify//出现404错误的问题

问题原因

你的Flask路由定义为/modify/<id>/,要求必须传入一个有效的id参数才能匹配。但你访问的http://127.0.0.1:5000/modify//中没有提供具体的id值,Flask找不到对应的路由规则,因此返回404错误。

修复方案

1. 确保访问链接包含有效ID

检查生成跳转链接的代码(比如HTML模板中的链接),确保生成的链接是/modify/具体ID值/的格式,例如:

<!-- 模板中正确生成链接的示例 -->
<a href="{{ url_for('modify', id=todo._id) }}">编辑</a>

确认todo._id存在且是有效的MongoDB ObjectId值,避免生成空ID的链接。

2. 添加异常处理与兜底逻辑

  • 处理无效ID格式:如果传入的ID不是合法的ObjectId,会引发错误,可添加异常捕获:
from bson.errors import InvalidId

@app.route('/modify/<id>/', methods=['GET', 'POST'])
def modify(id):
    try:
        todo_id = ObjectId(id)
    except InvalidId:
        return "无效的ID格式", 400
    
    todo = todos.find_one({"_id": todo_id})
    if not todo:
        return "未找到对应的待办记录", 404
    
    # 原有POST请求处理逻辑
    if request.method == 'POST':
        content = request.form['content']
        desc = request.form['desc']
        todos.update_one({"_id": todo_id}, {"$set": {
            "content": content,
            "desc": desc
        }})
        return redirect("/")
    
    return render_template('update.html', todo=todo)
  • 可选:添加兜底路由,避免空ID访问报错:
@app.route('/modify/', methods=['GET'])
def modify_empty():
    return redirect("/")  # 跳转到首页或返回提示信息

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 03:35:24