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

Flask应用中无法删除班级代码(Class Code)的问题排查求助

Flask应用中无法删除班级代码(Class Code)的问题排查求助

我正在开发一个Flask应用,需要通过DELETE请求从数据库中删除班级代码。前端用JavaScript触发删除操作,Flask也配置了对应的处理路由,但点击删除按钮后,班级代码并没有被删除,希望大家帮忙排查一下问题!


前端代码(JavaScript & HTML)

<!-- Example button for deleting a class code -->
<button class="delete-btn" data-id="{{ class_code.id }}">Delete</button>

<script>
document.querySelectorAll('.delete-btn').forEach(button => {
    button.addEventListener('click', function() {
        let classCodeId = this.getAttribute('data-id');
        
        fetch(`/delete_class_code/${classCodeId}`, {
            method: 'DELETE',
            headers: {
                'Content-Type': 'application/json',
                // Include additional headers if needed, such as CSRF token for security
            }
        })
        .then(response => response.json())
        .then(data => {
            if (data.message === 'Class code deleted successfully!') {
                // Optionally remove the element from the DOM
                this.closest('.class-code-item').remove();
                alert('Class code deleted!');
            } else {
                alert('Failed to delete class code!');
            }
        })
        .catch(error => console.error('Error:', error));
    });
});
</script>

Flask路由代码

@main.route('/delete_class_code/<int:id>', methods=['DELETE'])
@login_required
def delete_class_code(id):
    if current_user.role != 'employee':
        return jsonify({'message': 'Unauthorized'}), 403

    try:
        # Assuming you have a ClassCode model and you're using SQLAlchemy
        class_code = ClassCode.query.get(id)
        if class_code:
            db.session.delete(class_code)
            db.session.commit()
            return jsonify({'message': 'Class code deleted successfully!'}), 200
        return jsonify({'message': 'Class code not found.'}), 404
    except Exception as e:
        db.session.rollback()  # Ensure the session is rolled back if there is an error
        return jsonify({'message': 'An error occurred: ' + str(e)}), 500

遇到的问题

  • 点击「删除」按钮后,班级代码没有被删除,前端弹出Failed to delete class code!的提示
  • 我怀疑问题可能出在Flask路由对请求的处理逻辑上,或者前端发送DELETE请求的方式有问题

我已经尝试过的操作

  • 确认前端已经正确发送了DELETE请求
  • 反复检查Flask路由的处理逻辑,看起来没有明显问题,但数据就是删不掉
  • 在Flask端添加了异常捕获和事务回滚,但浏览器控制台没有输出任何错误信息
  • 已经确保请求头中正确携带了CSRF令牌(安全验证用)

预期的正常结果

  • 点击删除按钮后,班级代码能被成功删除,前端的班级代码列表会同步更新
  • 前端能收到Class code deleted successfully!的响应,对应的DOM元素会从页面上移除
  • 弹出「Class code deleted!」的提示框

有没有大佬能帮我定位问题所在,或者给一些优化建议?非常感谢!


备注:内容来源于stack exchange,提问作者user28928600

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.14 17:09:32