Commit ca01360da83091581bea682ac47ae5a14abd6030

Authored by Augusto Herrmann
1 parent 80a8857b
Exists in master

implementado o tratamento para requisi??es http condicionais (cache)

Showing 1 changed file with 12 additions and 3 deletions   Show diff stats
app/barrabrasil.py
1   -from flask import Flask, url_for, render_template, request, make_response
  1 +from flask import Flask, url_for, render_template, request, Response, make_response
  2 +import hashlib
2 3 app = Flask(__name__)
3 4  
4 5 @app.route('/')
... ... @@ -25,8 +26,16 @@ def barra():
25 26 'verde': '#00500F',
26 27 }
27 28 cor = paleta.get(nome_cor, '#004B82')
28   - resposta = make_response(render_template('barra-brasil.js', cor=cor))
29   - resposta.headers['Content-type'] = 'application/javascript'
  29 + conteudo = render_template('barra-brasil.js', cor=cor)
  30 + etag = hashlib.sha1(conteudo.encode('utf-8')).hexdigest()
  31 + if request.if_none_match and \
  32 + etag in request.if_none_match:
  33 + resposta = Response(status=304)
  34 + else: # nao esta em cache do navegador
  35 + resposta = make_response(conteudo)
  36 + resposta.set_etag(etag)
  37 + resposta.headers['Content-type'] = 'application/javascript'
  38 + resposta.headers['Cache-control'] = 'max-age: 3600'
30 39 return resposta
31 40  
32 41 if __name__ == '__main__':
... ...