Uso del make_response method para obtener una respuesta con sus datos. Luego configure el mimetype attribute. Finalmente devolver esta respuesta:
@app.route('/ajax_ddl')
def ajax_ddl():
xml = 'foo'
resp = app.make_response(xml)
resp.mimetype = "text/xml"
return resp
Si utiliza Response
directamente, se pierde la oportunidad de personalizar las respuestas mediante el establecimiento de app.response_class
. El método make_response
usa app.responses_class
para crear el objeto de respuesta. En esto puede crear su propia clase, agrega que su aplicación sea lo utiliza en todo el mundo:
class MyResponse(app.response_class):
def __init__(self, *args, **kwargs):
super(MyResponse, self).__init__(*args, **kwargs)
self.set_cookie("last-visit", time.ctime())
app.response_class = MyResponse
¿Es posible establecer estas y otras opciones a nivel global (es decir: por defecto)? – earthmeLon
@earthmeLon, crea una subclase de 'flask.Response', anula el atributo de clase' default_mimetype' y configúralo como 'app.response_class' http://werkzeug.pocoo.org/docs/wrappers/#werkzeug.wrappers .BaseResponse.default_mimetype http://flask.pocoo.org/docs/api/#flask.Flask.response_class –
@earthmeLon: Si configura 'app.response_class' como Simon señala, recuerde usar' app.make_response' para obtener su instancia de respuesta como [señalado en la respuesta a continuación] (http://stackoverflow.com/a/31751634/110204). –