Blog

Postado em em 26 de setembro de 2023

Como Usar Cookies com Python – Gerenciando Cookies com Flask

Aprenda a gerenciar e usar cookies com Python! Faça atribuições e requisições desses cookies sempre que precisar.

Caso prefira esse conteúdo no formato de vídeo-aula, assista ao vídeo abaixo ou acesse o nosso canal do YouTube!

Para receber por e-mail o(s) arquivo(s) utilizados na aula, preencha:

Como Usar Cookies com Python – Gerenciando Cookies com Flask

Na aula de hoje, você aprenderá como gerenciar os cookies do navegador usando Python. Veremos como atribuí-los e fazer requisições sempre que necessitarmos deles para atividades no nosso site.

Vou te mostrar como usar cookies com Python para armazenar informações no navegador do usuário e como utilizar essas informações posteriormente. Para isso, utilizaremos o Flask, uma das ferramentas mais populares para criação de sites em Python.

No material disponível para download dessa aula, você encontrará um gabarito do código, que servirá como um guia para consulta e utilização sempre que precisar usar cookies em seu site.

Além disso, caso queira aprender a desenvolver um site do zero, disponibilizei um minicurso gratuito para desenvolvimento de um site, uma réplica do Pinterest, feito com Python e Flask.

O que são Cookies do Navegador

Antes de partirmos para o nosso código, vamos primeiro compreender o que são os cookies do navegador.

Os cookies são informações que são armazenadas no navegador do usuário. Dessa forma, quando o usuário retornar ao seu site, você poderá recuperar essas informações.

São os cookies que possibilitam, por exemplo, que as redes sociais como Facebook e Instagram saibam que você já fez login anteriormente, permitindo que você seja automaticamente conectado quando voltar a acessar o site.

o entanto, os cookies não servem apenas para armazenar informações como essas. Eles podem ser usados para salvar diversos tipos de informações. Então, vamos aprender como fazer isso.

Instalação do Flask

Para o desenvolvimento do nosso código, utilizaremos o Flask, um microframework de desenvolvimento web em Python que permite a criação rápida e eficiente de sites, aplicativos web e APIs.

Para começar, abra o editor de códigos de sua preferência e instale o Flask através do terminal com o seguinte comando:

pip install flask

Nesta aula, nosso foco não será tanto na parte de funcionamento do Flask, mas sim em como usar cookies com Python. No entanto, caso você queira entender melhor todo o funcionamento do Flask, você pode acessar este projeto aqui.

Importando as bibliotecas

Com o Flask devidamente instalado, crie um arquivo chamado main.py no seu editor de código. Em seguida, importe as bibliotecas que serão utilizadas.

from flask import Flask, request, make_response

Vamos importar o Flask em si para criar e gerenciar nosso aplicativo web. O request será utilizado para lidar com os cookies presentes na requisição do navegador. Já o make_response nos permitirá criar cookies no navegador do usuário.

Criação do site com Flask

A forma padrão de criar um site simples com Flask é a seguinte:

from flask import Flask, request, make_response

app = Flask(__name__)

@app.route("/")
def homepage():
    return "Meu site está no ar"

if __name__ == "__main__":
    app.run(debug=True)

Primeiro, criamos a instância da nossa aplicação usando a variável app. Em seguida, definimos a rota da homepage e a função associada a ela. Por fim, adicionamos o código para executar a aplicação com o modo de depuração ativado (debug=True).

Após executar esse código, o site será colocado no ar em um link que representa o seu servidor local, acessível apenas dentro do seu computador.

Link que representa o seu servidor local para seu site

Ao acessar esse link, você será redirecionado para a homepage do site que acabou de criar.

Homepage do Site

Como Usar Cookies com Python – Criação e Gerenciamento

Para entendermos como funcionam e como usar cookies com Python no Flask, vamos criar duas rotas em nosso site. Uma será responsável por criar os cookies, e a outra permitirá visualizá-los.

A rota “criar-cookie” será usada para gerar os cookies do usuário:

@app.route("/criar-cookie")

def criar_cookie():
    resposta = make_response("O cookie foi criado")
    resposta.set_cookie("nome_usuario", "Lira")
    resposta.set_cookie("idade", "29")
    return resposta

Dentro dessa rota, definimos a função criar_cookie, responsável por gerar os cookies e a resposta que será enviada ao usuário.

Utilizamos a função make_response() para criar a resposta, passando o conteúdo que queremos exibir para o usuário – no caso, a frase “O cookie foi criado“. No entanto, essa resposta poderia ser uma página HTML completa.

Além disso, utilizamos a função set_cookie para definir e criar os cookies na resposta.

Os cookies são criados e definidos como um dicionário em Python, com uma chave e um valor. Dessa forma, armazenamos um dicionário no navegador do usuário, capaz de conter várias informações.

Nesse exemplo, criamos dois cookies: um com a chave “nome_usuario” e valor “Lira”, e outro com a chave “idade” e valor “29”.

Isso garante que esses cookies sejam criados e armazenados no navegador do usuário.

Para visualizar e acessar esses cookies, vamos criar a rota “ver-cookie”:

@app.route("/ver-cookie")

def ver_cookie():
    cookies = request.cookies
    return cookies

Nessa rota, criamos a função ver_cookie() e usamos o request,que importamos anteriormente, para acessar os cookies armazenados no navegador do usuário.

Como os cookies são salvos como dicionário, podemos escolher quais informações queremos obter. Por exemplo, se quisermos apenas o nome do usuário, podemos utilizar o método get() da seguinte forma:

nome_usuario = cookies.get("nome_usuario")

No entanto, como queremos exibir todas as informações armazenadas, retornamos o dicionário completo de cookies.

Pronto, dessa forma você já sabe como criar e pegar os valores dos cookies armazenados no navegador do usuário. Basicamente o processo será o de usar o set_cookie para criar o cookie, e o request para obter o valor daquele cookie.

Nosso código final ficou:

from flask import Flask, request, make_response

app = Flask(__name__)

@app.route("/")
def homepage():
    return "Meu site está no ar"

@app.route("/criar-cookie")
def criar_cookie():
    resposta = make_response("O cookie foi criado")
    resposta.set_cookie("nome_usuario", "Lira")
    resposta.set_cookie("idade", "29")
    return resposta

@app.route("/ver-cookie")
def ver_cookie():
    cookies = request.cookies
    return cookies

if __name__ == "__main__":
    app.run(debug=True)

Agora, você pode acessar essas duas páginas em seu site para ver as respostas que elas retornam. Primeiro a criar-cookie:

Página criar cookie

E depois a ver-cookie:

Página para ver os cookies

Você pode criar e definir quantas informações desejar dentro do seu cookie. Como ele funciona como um dicionário em Python, é possível editar uma informação existente ou criar uma nova, caso não exista.

Essa abordagem permite que você implemente o uso de cookies em seu site da maneira que preferir e para as páginas que desejar.

Por exemplo, você pode utilizar cookies para verificar se o usuário está logado, armazenando o token de login dele em um cookie. Ao retornar ao seu site, você pode validar esse token sem que o usuário precise realizar o processo de login novamente.

Conclusão – Como Usar Cookies com Python – Gerenciando Cookies com Flask

Na aula de hoje eu te mostrei como usar cookies com Python usando o Flask. Você aprendeu a criar e gerenciar os cookies no navegador do usuário, armazenando informações e recuperando-as posteriormente para utilizar conforme necessário.

Essa funcionalidade é extremamente útil e interessante quando desenvolvemos sites. Embora muitos frameworks já cuidem da autenticação do usuário, os cookies permitem que você armazene e recupere diversas informações adicionais que sejam necessárias.

Se você deseja dar um passo adiante no desenvolvimento de sites e conhecer mais sobre o Flask, confira nosso minicurso gratuito, onde desenvolvemos uma réplica do Pinterest usando Python a partir do zero.

Hashtag Treinamentos

Para acessar outras publicações de Python, clique aqui!


Quer aprender mais sobre Python com um minicurso básico gratuito?