Sessões de Frasco

As sessões Flask são um recurso importante da estrutura Flask que permite armazenar e gerenciar dados específicos do usuário em várias solicitações.

Neste artigo, você aprenderá o conceito de sessões Flask em detalhes e discutirá sua importância no desenvolvimento web Flask .



O que são Flask Sessions?

As sessões Flask são uma maneira de armazenar dados específicos do usuário em várias solicitações. Eles fornecem um mecanismo para um aplicativo Flask controlar as informações do usuário, como credenciais de login, conteúdo do carrinho de compras e preferências do usuário.

As sessões Flask são armazenadas no lado do servidor e um ID de sessão é usado para associar os dados do usuário à sua sessão.

Quando você utiliza os dados da sessão, eles são armazenados no lado do cliente de maneira semelhante aos cookies. Sua sessão começa quando você faz login em um servidor e termina quando você sai. Durante este período, os dados necessários para persistir são salvos em seu navegador. Um ID de sessão exclusivo é atribuído à sua sessão e os dados da sessão são criptografados usando cookies que são assinados criptograficamente pelo servidor.

Para criptografar os dados da sessão, você precisará de uma SECRET_KEY pré-definida para seu aplicativo Flask. Além disso, o objeto de sessão é um objeto semelhante a um dicionário que contém pares chave-valor de variáveis ​​de sessão e seus valores correspondentes.


Por que as sessões do Flask são importantes?

Existem várias razões pelas quais as sessões do Flask são significativas.

  • Em primeiro lugar, eles permitem que os aplicativos da Web retenham dados específicos do usuário em várias solicitações. Esse recurso é particularmente vital para aplicativos que exigem autenticação do usuário ou manutenção de um carrinho de compras.
  • Em segundo lugar, as sessões do Flask oferecem uma maneira segura de armazenar informações. Como os dados da sessão são mantidos no servidor, eles permanecem inacessíveis e inalteráveis ​​pelo usuário.

Para definir uma variável de sessão chamada ' client_name ', você pode consultar a seguinte instrução como exemplo:

Session[client_name’] = ’mrx’

Se você deseja excluir uma variável de sessão, pode invocar o método pop() :

session.pop(client_name', None)

O código abaixo mostra como as sessões funcionam no Flask de forma simples. Ao acessar a URL '/', você será solicitado a efetuar login porque a variável de sessão 'client_name' não foi definida.

from flask import Flask, session, redirect, render_template, request, make_response, url_for

app = Flask(__name__)

app.secret_key = 'mrexamples'

@app.route('/')

def index():

   if 'client_name' in session:

      client_name = session['client_name']

      password = session['pwd']

      if client_name and password:

         return f'{client_name} Your account is logged in.<br>' \

            "<b><a href = '/logout'>Log out your account here</a></b>"

      else:

         return redirect('/login')

   return "You are not logged in <br><a href = '/login'></b>" + \

      "Log in your account here</b></a>"

@app.route('/login', methods = ['GET', 'POST'])

def login():

   if request.method == 'POST':

      session['client_name'] = request.form['client_name']

      session['pwd'] = request.form['pwd']

      return redirect(url_for('index'))

   return '''

   <form action = "" method = "post">

      <p>Username*: <input type = text name = client_name /></p>

      <p>Password*: <input type = password name = pwd /></p>

      <p><input type = submit value = Login /></p>

   </form>

   '''

@app.route('/logout')

def logout():

   session.pop('client_name', None)

   session.pop('pwd', None)

   return redirect(url_for('index'))



if __name__ == '__main__':

   app.run(debug = True)

Saída

Isso é o que você verá na tela: haverá um link que diz “Faça login na sua conta aqui”.

Na próxima tela, haverá um link no qual você pode clicar. Depois de clicar nele, você será direcionado para outra página onde precisará inserir o nome 'Harry' e a senha '12345678'.

A tela aparecerá com uma mensagem dizendo: "Sua conta está conectada como Harry".

Exemplo de Explicação

Criamos um aplicativo Flask simples que nos permite fazer login e logoff de nossas contas. Usamos a estrutura Flask para criar rotas para lidar com diferentes solicitações HTTP.

Começamos importando os módulos necessários e criando uma instância do aplicativo Flask. Definimos o secret_key para o aplicativo, que é usado para gerenciamento de sessão.

A rota '/' é definida para a página de índice. A função index() verifica se a variável de sessão client_name está definida. Se estiver, o usuário é considerado conectado e uma mensagem de boas-vindas é exibida junto com um link para a página de logoff. Se a variável client_name não for definida, o usuário será considerado não conectado e uma mensagem será exibida junto com um link para a página de login.

A rota '/login' é definida para a página de login. A função login() lida com o login do usuário. Ele verifica se o método HTTP utilizado é POST, significando que o usuário submeteu o formulário de login. Se o formulário foi enviado, as variáveis ​​de sessão client_name e pwd são definidas com os valores inseridos no formulário e o usuário é redirecionado para a página de índice. Se o método HTTP não for POST, o formulário de login será exibido.

A rota '/logout' é definida para a página de logout. A função logout() remove as variáveis ​​de sessão client_name e pwd, efetivamente desconectando o usuário.

Por fim, o bloco if name == 'main' verifica se o script está sendo executado diretamente e, se estiver, inicia o aplicativo Flask com a depuração habilitada.


Benefícios

  • As sessões Flask podem autenticar usuários e manter seu estado de login em diferentes solicitações.
  • Os dados do usuário podem ser armazenados em solicitações sem depender de cookies ou outros mecanismos de armazenamento usando sessões do Flask.
  • Os aplicativos baseados em sessão podem ser mais eficientes, pois os dados da sessão são armazenados no servidor e não enviados entre o cliente e o servidor em cada solicitação.
  • As sessões Flask podem ser personalizadas para atender a requisitos específicos do aplicativo, como alterar o tempo limite de sessão padrão ou usar um mecanismo de armazenamento de sessão diferente.
  • As sessões Flask usam uma chave secreta segura para impedir a adulteração dos dados da sessão e proteger a privacidade do usuário.

Conclusão

A sessão do Flask é um recurso útil do Flask que permite armazenar e reter dados do usuário em várias solicitações. Oferece vantagens como verificação da identidade do usuário, retenção de dados, melhor desempenho, flexibilidade e segurança. A implementação da sessão Flask em aplicativos Flask é fácil e pode melhorar significativamente sua usabilidade e desempenho.

Nós valorizamos o seu feedback.
+1
0
+1
0
+1
0
+1
0
+1
0
+1
0
+1
0

Assine a nossa newsletter
Digite seu e-mail para receber um resumo semanal de nossos melhores posts. Saber mais!
ícone