python - Flask - 使用 DELETE 得到 500 个错误

标签 python flask

我确定我遗漏了一些明显的东西,但它是:

@app.route(PREFIX + '/<table>/<int:index>', methods = ['DELETE'])
def delete_row(table, index=None):
    if table not in can_delete:
        abort(404)
    try:
        del database[table][index]
    except:
        abort(404)
    print('returning')

运行结果如下:

 * Running on http://127.0.0.1:8080/ (Press CTRL+C to quit)
returning
127.0.0.1 - - [13/Feb/2015 11:28:44] "DELETE /api/json/types/ig-folders/1 HTTP/1.1" 500 -
127.0.0.1 - - [13/Feb/2015 11:29:01] "DELETE /api/json/types/ig-folders/99 HTTP/1.1" 404 -
127.0.0.1 - - [13/Feb/2015 11:28:35] "DELETE /api/json/types/invalid/1 HTTP/1.1" 404 -

我的 GET 处理程序工作正常,DELETE 处理程序工作正常,除了讨厌的 500 错误。问题是我没有返回任何值吗?我的印象是 DELETE 应该只返回状态,而不是数据。

最佳答案

删除成功后不返回响应。抛出 500 是因为 None 不是 Flask View 的有效返回值。

返回an acceptable response type ,就像一个字符串,而不是。

对于 200 响应,您可以返回:

'Success', 200, {'Content-Type': 'text/plain'}

或者您可以返回 204 No Content ,您将在其中为响应正文返回一个空字符串:

'', 204

关于python - Flask - 使用 DELETE 得到 500 个错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28505485/

相关文章:

python - 如何让 gunicorn 记录未捕获的异常?

java - Python客户端写入Java的writeUTF方法

python - 将字符串拆分为数据框 pandas

python - 尝试在 Windows : AttributeError: 'Settings' object has no attribute 'DATABASES' 上设置 Django 时

python - SQLAlchemy 条件过滤中的抽象

javascript - flask.abort() 究竟做了什么?

javascript - Flask:接收异步 POST 请求?

python - 以编程方式在 Google 应用引擎上设置子域

python - 在 Python 中对 XML 进行排序的最简单方法? [Skype 机器人]

python - 删除迁移文件夹后重置 Alembic