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

Flask项目删除首个列表项时404错误求助(CS50课程项目)

问题排查方案

1. 核查前端ID传递逻辑

  • 打开list.html,检查首个问题对应的删除按钮/链接的ID参数生成代码。比如使用Jinja2渲染的<a href="/delete/{{ question.id }}">,要确认首个问题的question.id在模板渲染时被正确填充。可以临时在模板中添加{{ question.id }}直接显示,查看页面渲染后首个问题的ID是否存在。
  • 检查循环渲染逻辑(如{% for question in questions %}),确认首个元素的变量引用没有拼写错误或特殊处理导致ID未绑定。

2. 检查Flask路由的参数接收

  • 查看app.py中处理删除请求的路由(例如@app.route('/delete')或@app.route('/delete/<int:id>')),确认参数获取方式是否正确:
    • 若为GET请求,检查是否用request.args.get('id')获取ID;
    • 若为POST请求,检查是否用request.form.get('id')获取ID。
  • 在路由中添加打印语句(如print("Received ID:", id)),确认首个删除请求的ID是否为None,以此验证前端是否正确传递参数。

3. 验证数据加载与数据库查询

  • 检查从SQLite3加载问题列表的代码,确认查询语句(如SELECT id, ... FROM questions)包含了ID字段,且查询结果中首个问题的ID值存在。
  • 确认Python对象(如question实例)的ID属性被正确赋值,避免因数据映射错误导致ID丢失。

4. 用浏览器工具抓包验证请求

  • 按下F12打开浏览器开发者工具,切换到网络标签页,触发首个问题的删除操作,查看请求的URL或表单数据:
    • 若为GET请求,检查URL中是否包含?id=xxx参数;
    • 若为POST请求,查看表单数据中是否有id字段及对应值。
  • 如果请求中没有ID参数,说明前端渲染或事件绑定存在问题,导致参数未被传递。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 00:10:23