12

我希望能够返回应用程序/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

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

进口: from flask import Flask, request, Response, session,make_response

4

1 回答 1

2

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

def get(self):
    response = flask.make_response(something)
    response.headers['content-type'] = 'application/vnd.google-earth.kml'
    return response
于 2020-05-05T18:03:26.887 回答