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

Python帖子删除功能失效求助:点击后仅跳转首页未删内容

删除帖子功能失效问题排查与解决

核心问题:传递错误的ID参数

你代码里最直接的错误是HTML删除链接传递的是用户ID而非帖子ID,导致删除逻辑找不到对应帖子:

  • 路由/delete/post/<int:id>期望接收的是帖子的ID
  • 但HTML中写的是href="/delete/post/{{post.user.id}}",传的是发帖用户的ID

因为数据库中posts.id和users.id大概率不匹配,所以SQL删除语句执行后没有影响任何行,自然帖子不会消失,也不会报错(SQL语句本身是合法的)。

修复步骤

  1. 修正HTML中的删除链接
    把删除链接的参数从post.user.id改为post.id:
<div class="card-body">
    {% for post in posts %}
    <h3>{{post.title}}</h3>
    <h6>Posted by: {{post.user.username}}</h6>
    <p>{{post.content}}</p>
    <a href="/edit/post/{{post.id}}" class="btn btn-link">Edit</a>
    <a href="/delete/post/{{post.id}}" class="btn btn-link">Delete</a>
    {% endfor %}
</div>
  1. 可选优化:改用POST请求执行删除(安全规范)
    GET请求不应该用于修改/删除数据的操作(容易被误触、爬虫抓取导致意外删除),建议改为POST请求:
  • 修改路由,指定methods=['POST'],同时增加用户权限验证(确保只有帖子作者能删除):
@app.route('/delete/post/<int:id>', methods=['POST']) 
def delete_post(id):
    if 'user_id' not in session:
        return redirect('/logout')
    # 验证当前用户是否为帖子作者
    post = models_post.Post.get_one({"id": id}) # 需要实现根据ID获取单条帖子的方法
    if not post or post.user_id != session['user_id']:
        return redirect('/home')
    data = {"id": id}
    models_post.Post.delete(data)
    return redirect('/home')
  • 把HTML中的删除链接改成表单提交:
<div class="card-body">
    {% for post in posts %}
    <h3>{{post.title}}</h3>
    <h6>Posted by: {{post.user.username}}</h6>
    <p>{{post.content}}</p>
    <a href="/edit/post/{{post.id}}" class="btn btn-link">Edit</a>
    <form action="/delete/post/{{post.id}}" method="POST" style="display: inline;">
        <button type="submit" class="btn btn-link">Delete</button>
    </form>
    {% endfor %}
</div>

额外排查点

如果修正后仍有问题,可以检查:

  • 确认connectToMySQL.query_db方法是否正确执行了SQL语句(可以打印返回值,删除操作成功会返回受影响的行数)
  • 验证session['user_id']是否正确,确保用户处于登录状态
  • 检查数据库中posts表的id字段是否为正确的主键,且数据类型匹配

内容的提问来源于stack exchange,提问作者AK-JUN

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 04:24:13