【发布时间】:2018-07-09 23:39:21
【问题描述】:
我有一个 Flask 应用程序,它返回 HTML 页面和对 API 请求的 JSON 响应。我想根据请求的内容类型更改错误处理程序返回的内容。如果客户端请求application/json,我想返回一个jsonify 响应,否则我想返回一个render_template 响应。如何检测请求的内容并适当更改响应?
我目前的错误处理程序只返回一个 HTML 响应。
def register_errorhandlers(app):
"""Register error handlers."""
def render_error(error):
"""Render error template."""
# If a HTTPException, pull the `code` attribute; default to 500
error_code = getattr(error, 'code', 500)
return render_template('{0}.html'.format(error_code)), error_code
for errcode in [401, 404, 500]:
app.errorhandler(errcode)(render_error)
【问题讨论】: