En este post te enseñaré a agregar encabezados HTTP al enviar la respuesta con Flask (framework web para Python). Podemos usar encabezados para varias cosas, entre ellas para configurar CORS o para indicar el tipo de contenido.
Encabezados con Flask
Simplemente tienes que crear el response y modificar los encabezados antes de enviarlos al cliente. El response o respuesta puede venir de cualquier lugar, no importa; lo que importa es modificar la propiedad headers
con la sintaxis:
respuesta.headers["Nombre_encabezado"] = "valor"
Y después de haberlos establecido, regresar la respuesta.
Ejemplo: modificar encabezados con Flask
Veamos el siguiente ejemplo de código. En este caso primero creo la respuesta y luego asigno encabezados. Específicamente hablando, estos headers con Flask sirven para forzar la descarga de un archivo.
@app.route("/tomar_foto_descargar")
def descargar_foto():
# La respuesta puede venir de cualquier lugar
respuesta = Response(obtener_frame_camara())
respuesta.headers["Content-Type"] = "image/jpeg"
respuesta.headers["Content-Transfer-Encoding"] = "Binary"
respuesta.headers["Content-Disposition"] = "attachment; filename=\"foto.jpg\""
return respuesta
Como puedes estoy asignando 3 encabezados desde la línea 5 hasta la 7. Finalmente envío la respuesta. De este modo puedes cambiar los encabezados HTTP con Flask y Python.