barrabrasil.py
1.48 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
from flask import Flask, url_for, render_template, request, Response, make_response
import hashlib
app = Flask(__name__)
@app.route('/')
def pagina_teste():
# apos o desenvolvimento substituir por redirect para e-pwg
bootstrap = '''
<html>
<head></head>
<body>
<div id="barra-brasil"><a href="http://brasil.gov.br" style="background:#7F7F7F; height: 20px; padding:4px 0 4px 10px; display: block; font-family:sans,sans-serif; text-decoration:none; color:white; ">Portal do Governo Brasileiro</a></div>
<script src="barra.js?cor=verde" type="text/javascript"></script>
</body>
</html>
'''
return bootstrap # % url_for('static', filename='barra-brasil.js')
@app.route('/barra.js')
def barra():
nome_cor = request.args.get('cor', 'azul')
paleta = {
'azul': '#004B82',
'preta': '#000000',
'cinza': '#7F7F7F',
'verde': '#00500F',
}
cor = paleta.get(nome_cor, '#004B82')
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__':
app.run(debug=True)