Cuando respondemos un contenido desde un servidor a un cliente uno de los contenidos que va en la respuesta (o response) son las cabeceras. Las cabeceras suelen llevar información o bien sobre el contenido de la petición o bien sobre el servidor que está sirviendo la petición. En este artículo vamos a ver cómo podemos manejar las cabeceras en Flask para una petición.
Lo primero que tenemos que saber para poder manejar las cabeceras en Flask es como son las respuesta que devolvemos al cliente. Lo más utilizado puede ser el ver una plantilla como respuesta mediante el método render_template()
o simplemente devolver un texto, ya sea plano o XML o JSON.
Si bien en todos los casos lo que se devuelve es un objeto response. Si queremos crear un objeto response vacío podemos utilizar el método make_response()
.
Así podemos crear el siguiente objeto response con texto:
resp = make_response('Respuesta de texto')
Lo bueno es que dentro del objeto response tiene una colección llamada headers en la que van las cabeceras de la respuesta. De esta forma si queremos modificar las cabeceras en Flask y añadir una cabecera personalizada podremos escribir.
resp.headers['micabecera'] = 'Mi Contenido'
O podemos sobre escribir alguna de las cabeceras que se devuelve. Por ejemplo podemos «tunear» la cabecera del servidor de la siguiente forma:
resp.headers['Server'] = 'Mi Servidor'
Ya solo nos quedará devolver el objeto response como resultado del método:
@app.route('/')
def holamundo():
resp = make_response('Respuesta de texto')
resp.headers['Server'] = 'Mi Servidor'
return resp
Ya hemos visto lo sencillo que es manejar las cabeceras en Flask.