From ca01360da83091581bea682ac47ae5a14abd6030 Mon Sep 17 00:00:00 2001 From: Augusto Herrmann Date: Tue, 15 Jan 2013 10:55:07 -0200 Subject: [PATCH] implementado o tratamento para requisi??es http condicionais (cache) --- app/barrabrasil.py | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/app/barrabrasil.py b/app/barrabrasil.py index 497d067..2260e4d 100644 --- a/app/barrabrasil.py +++ b/app/barrabrasil.py @@ -1,4 +1,5 @@ -from flask import Flask, url_for, render_template, request, make_response +from flask import Flask, url_for, render_template, request, Response, make_response +import hashlib app = Flask(__name__) @app.route('/') @@ -25,8 +26,16 @@ def barra(): 'verde': '#00500F', } cor = paleta.get(nome_cor, '#004B82') - resposta = make_response(render_template('barra-brasil.js', cor=cor)) - resposta.headers['Content-type'] = 'application/javascript' + conteudo = render_template('barra-brasil.js', cor=cor) + etag = hashlib.sha1(conteudo.encode('utf-8')).hexdigest() + if request.if_none_match and \ + etag in request.if_none_match: + resposta = Response(status=304) + else: # nao esta em cache do navegador + resposta = make_response(conteudo) + resposta.set_etag(etag) + resposta.headers['Content-type'] = 'application/javascript' + resposta.headers['Cache-control'] = 'max-age: 3600' return resposta if __name__ == '__main__': -- libgit2 0.21.2