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