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
相关产品推荐
相关产品推荐

