Contador de visitas com Flask

Capa do artigo


Hoje vamos ver como podemos fazer um simples contador de visitas com Flask. Nele vamos usar cookies para armazenar o valor de nosso contador.

Antes de tudo instalaremos nossa biblioteca com o seguinte comando:

pip install Flask

Agora vamos criar um arquivo chamado flask_visit_counter.py e adicionar o seguinte código nele:

from flask import Flask, request, make_response
app = Flask(__name__)
@app.route('/')
def visit_counter():
visits = int(getattr(request.cookies, 'visits', 0)) + 1
msg = f'''
<h1>
{visits} visita{"s" if visits > 2 else ""}
</h1>
'''
res = make_response(msg)
res.set_cookie('visits', str(visits))
return res
@app.route('/reset')
def reset_counter():
res = make_response('Resetting... ok')
res.set_cookie('visits', '0', 0)
return res
if __name__ == "__main__":
app.run(host='0.0.0.0', port=4000)

Começamos importando nossa classe Flask e algumas coisinhas que vão nos ser útil.

Instanciamos nossa classe Flask à variável app.

Na linha 6 criamos uma função que aqui dei o nomeei de visit_counter e decoramos com um método do nosso app que vai chamar nossa função sempre que acessarmos nosso projeto via navegador.

Na linha 7 criamos uma variável que nos vai ser bastante importante. Vamos agora pegar o cookie de nome visit, converter pra inteiro e somar um — para saber como funciona a função getattr clique aqui.

Criamos uma variável msg de string multilinha, um html simples que dentro de uma tag h1 que mostra o número de visitas desse usuário, e pluraliza se for maior que dois.

Agora criamos outra variável e atribuímos make_response à ela, passando nossa mensagem.

Chamamos o método set_cookie passando o nome do cookie e seu valor, que aqui convertemos para string. Agora retornamos nossa variável res

Para o caminho /reset fazemos algo similar ao caminho raiz, porém dessa vez apenas setamos o mesmo cookie com um zero, e no terceiro parâmetro passamos um 0 no tipo inteiro; aqui dizemos que esse cookie só vai valer por 0 segundos, assim o apagando assim que é “atualizado”.

Agora rodamos nosso mini projeto na linha 26.

Tudo entendido até agora?

Por fim basta a gente acessar nosso terminal e rodar o seguinte comando

python flask_visit_counter.py

OBS: se você tiver mais de uma versão do Python instalada em sua máquina, use “python3” no lugar de “python”.

Agora é só ir no navegador, acessar http://localhost:4000/ e ser feliz.

Oh, será que deu pra entender bem? Espero nos vermos novamente.

Leituras recomendadas

Comentários

Postagens mais visitadas deste blog

Você conhece os iterators e generators do Javascript?

Deno, o que é? - Resumo básico

Guia básico de Python - parte 1