Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 基于烧瓶中请求的内容类型的更改响应_Python_Flask - Fatal编程技术网

Python 基于烧瓶中请求的内容类型的更改响应

Python 基于烧瓶中请求的内容类型的更改响应,python,flask,Python,Flask,我有一个Flask应用程序,它返回HTML页面和对API请求的JSON响应。我想根据请求的内容类型更改错误处理程序返回的内容。如果客户端请求application/json,我想返回jsonify响应,否则我想返回render\u template响应。如何检测请求的内容并适当更改响应 我拥有的当前错误处理程序只返回HTML响应 def register_errorhandlers(app): """Register error handlers.""" def render_e

我有一个Flask应用程序,它返回HTML页面和对API请求的JSON响应。我想根据请求的内容类型更改错误处理程序返回的内容。如果客户端请求
application/json
,我想返回
jsonify
响应,否则我想返回
render\u 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)
用于获取客户端随请求发送的内容类型。使用获取客户端在响应中表示可以接受的mimetype。使用这些来确定要返回的内容

from flask import request, jsonify, render_template

if request.accept_mimetypes.accept_json:
    return jsonify(...)
else:
    return render_template(...)