Python 尝试删除烧瓶中的JSON错误

Python 尝试删除烧瓶中的JSON错误,python,json,http,flask,Python,Json,Http,Flask,我正在尝试向API添加一个DELETE方法,如下所示: if request.method == 'DELETE': if request.headers['Content-Type'] == 'application/json': try: data = json.loads(request.data) data_id = data['id'] db.execute('DELETE FROM p

我正在尝试向API添加一个DELETE方法,如下所示:

if request.method == 'DELETE':

    if request.headers['Content-Type'] == 'application/json':

        try:
            data = json.loads(request.data)
            data_id = data['id']
            db.execute('DELETE FROM places WHERE id=' + data_id)
            db.commit()
            resp = Response({"Delete Success!"}, status=200, mimetype='application/json')
            return resp

        except (ValueError, KeyError, TypeError):
            resp = Response({"JSON Format Error."}, status=400, mimetype='application/json')
            return resp
我正在通过以下步骤:

curl -H "Content-type: applicaiton/json" -X DELETE http://localhost:5000/location -d '{"id":3}'
由于某种原因,try-except块失败。我无法发现问题所在。你知道我如何调试这个吗?

如果你改变了

except (ValueError, KeyError, TypeError):
    resp = Response({"JSON Format Error."}, status=400, mimetype='application/json')
    return resp

您将能够看到您的错误

更新:我很高兴你发现了你的错误!我认为大多数包装数据库连接的模块都允许您执行以下操作:

db.execute('SELECT * FROM awesome_table WHERE id=%s', data_id)

它们通常会提供一些基本的SQL注入保护。

您是否看到出现异常?另外,如果没有ID代码> DATAYID 的项目,您可能会考虑返回404而不是400的返回错误400,因此我认为正在引发异常。谢谢!如果有人稍后会看到这一点,有一点是肯定的:如果我正在开发一个只支持JSON的API,那么Flask中的print实际上不会在任何地方打印它。我使用return repr(error)查找我的错误。我的错误在db.execute中,连接了str和int对象。
db.execute('SELECT * FROM awesome_table WHERE id=%s', data_id)