Flask - 使用 DELETE 得到 500 个错误
Flask - getting 500 errors with DELETE
我确定我遗漏了一些明显的东西,但它是:
@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 错误。问题是我没有 return 任何值吗?我的印象是 DELETE 应该只是 return 状态,而不是数据。
删除成功后,您没有return回复。抛出 500 是因为 None
不是 Flask 视图的有效 return 值。
Returnan acceptable response type,像一个字符串,取而代之。
对于 200 响应,您可以 return:
'Success', 200, {'Content-Type': 'text/plain'}
或者您可以 return 204 No Content,其中您 return 响应正文的空字符串:
'', 204
问题是 return从 DELETE 操作中获取标准的 200 (OK) 响应代码仍然需要响应正文。您必须 return 响应或状态代码 204(无内容)。
我确定我遗漏了一些明显的东西,但它是:
@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 错误。问题是我没有 return 任何值吗?我的印象是 DELETE 应该只是 return 状态,而不是数据。
删除成功后,您没有return回复。抛出 500 是因为 None
不是 Flask 视图的有效 return 值。
Returnan acceptable response type,像一个字符串,取而代之。
对于 200 响应,您可以 return:
'Success', 200, {'Content-Type': 'text/plain'}
或者您可以 return 204 No Content,其中您 return 响应正文的空字符串:
'', 204
问题是 return从 DELETE 操作中获取标准的 200 (OK) 响应代码仍然需要响应正文。您必须 return 响应或状态代码 204(无内容)。