English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tratamento de Cookie Flask

Os cookies são armazenados em forma de arquivo de texto no computador do cliente. Sua finalidade é lembrar e rastrear dados relacionados ao uso do cliente para obter uma melhor experiência de acesso e estatísticas do site.

O objeto Request contém uma propriedade cookie. É um objeto dicionário de todas as variáveis de cookie e seus valores correspondentes, enviados pelo cliente. Além disso, o cookie também armazena o tempo de expiração, o caminho e o domínio do site.

No Flask, os cookies são definidos no objeto de resposta. Usa-se a função make_response() para obter o objeto de resposta do valor de retorno da função de visão. Em seguida, usa-se a função set_cookie() do objeto de resposta para armazenar o cookie.

reler cookie é fácil. Pode-se usar o método get() da propriedade request.cookies para ler o cookie.

No aplicativo Flask abaixo, ao acessar a URL => / ao qual abre um formulário simples.

# Filename: example.py
# Copyright: 2020 By w3codebox
# Author by: pt.oldtoolbag.com
# Data: 2020-08-08
@app.route('/)
 def index():
     return render_template('index.html')

Esta página HTML contém um campo de entrada de texto, o código completo está conforme abaixo -

# Filename: example.py
# Copyright: 2020 By w3codebox
# Author by: pt.oldtoolbag.com
# Data: 2020-08-08
<html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 <title>Exemplo de Cookies Flask</title>
 </head>
    <body>
       <form action = "/setcookie" method = "POST">
          <p><h3>Enter userID</h3></p>
          <p><input type = 'text' name = 'name'>/></p>
          <p><input type = 'submit' value = 'Login'>/></p>
       </form>
    </body>
 </html>

O formulário é submetido para a URL => /setcookie. A função de visão associada define um Cookie com o nome: userID e o apresenta em outra página.

# Filename: example.py
# Copyright: 2020 By w3codebox
# Author by: pt.oldtoolbag.com
# Data: 2020-08-08
@app.route('/setcookie', methods=['POST', 'GET'])
 def setcookie():
    if request.method == 'POST':
         user = request.form['name']
         resp = make_response(render_template('readcookie.html'))
         resp.set_cookie('userID', user)
         return resp

readcookie.html contém um hiperlink para outra função getcookie() da visão, que lê de volta e exibe o valor do cookie no navegador.

# Filename: example.py
# Copyright: 2020 By w3codebox
# Author by: pt.oldtoolbag.com
# Data: 2020-08-08
@app.route('/getcookie)
 def getcookie():
     name = request.cookies.get('userID')
     return '<h1>welcome ''+name+"/h1"

O código completo do aplicativo está conforme abaixo -

# Filename: example.py
# Copyright: 2020 By w3codebox
# Author by: pt.oldtoolbag.com
# Data: 2020-08-08
from flask import Flask
 from flask import render_template
 from flask import request
 from flask import make_response
 app = Flask(__name__)
 @app.route('/)
 def index():
     return render_template('index.html')
 @app.route('/setcookie', methods=['POST', 'GET'])
 def setcookie():
     if request.method == 'POST':
         user = request.form['name']
         resp = make_response(render_template('readcookie.html'))
         resp.set_cookie('userID', user)
         return resp
 @app.route('/getcookie)
 def getcookie():
     name = request.cookies.get('userID')
     print(name)
     return '<h1>Bem-vindo, ''+name+"/h1"
 if __name__ == '__main__':
     app.run(debug=True)

Execute o aplicativo e acesse a URL => http://localhost:5000/O resultado da configuração do cookie é como segue -

A saída do cookie é como segue -