如何在烧瓶静止状态中自定义响应内容类型?

问题描述 投票:8回答:1

我希望能够返回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类中响应的内容类型?

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

python flask flask-restful
1个回答
0
投票

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

def get(self):
    response = flask.make_response(something)
    response.headers['content-type'] = 'application/vnd.google-earth.kml'
    return response
© www.soinside.com 2019 - 2024. All rights reserved.