繁体   English   中英

如何在flask-restful中自定义响应内容类型?

[英]How to customize response content type in flask-restful?

我希望能够返回 application/json 以外的东西,即 kml。

我有以下几点:

@api.representation('application/vnd.google-earth.kml+xml')
def kml(data):
    return Response(data, mimetype='application/vnd.google-earth.kml+xml')

class mykml(restful.Resource):

    def get(self):
        r = requests.get("http://myurl/kml") # This retrieves a .kml file   
        response = make_response(r.content)
        response.headers['Content-Type'] = "application/vnd.google-earth.kml+xml"

        return response

为什么这仍然返回 application/json? 另外,如果我有不同的格式,我可以在没有装饰器的情况下动态更改 mykml 类中响应的 Content-Type 吗?

导入: from flask import Flask, request, Response, session,make_response

如果您需要来自 API 方法的特定响应类型,则必须使用 flask.make_response() 返回“预烘焙”响应对象:

def get(self):
    response = flask.make_response(something)
    response.headers['content-type'] = 'application/vnd.google-earth.kml'
    return response

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM