尝试除Flask中的JSON错误

时间:2012-11-13 03:31:50

标签: 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 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:

curl -H "Content-type: applicaiton/json" -X DELETE http://localhost:5000/location -d '{"id":3}'

try except block由于某种原因失败了。我无法发现问题所在。我有什么想法可以调试这个吗?

1 个答案:

答案 0 :(得分:2)

如果你改变了

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

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

您将能够看到您的错误。

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

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

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