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

Manejo de cookies de Flask

El cookie se almacena en forma de archivo de texto en el ordenador del cliente. Su propósito es recordar y rastrear los datos relacionados con el uso del cliente para obtener una mejor experiencia de acceso y estadísticas del sitio.

El objeto de solicitud contiene una propiedad de cookie. Es un objeto de diccionario que contiene todas las variables de cookie y sus valores correspondientes, enviados por el cliente. Además, el cookie también almacenará la hora de expiración, la ruta y el nombre de dominio del sitio.

En Flask, los cookies se establecen en el objeto de respuesta. Obtenga el objeto de respuesta desde el valor de retorno de la función de vista usando make_response() Luego, use la función set_cookie() del objeto de respuesta para almacenar el cookie.

Es fácil volver a leer el cookie. Puede usar el método get() de la propiedad request.cookies para leer el cookie.

En el siguiente aplicación Flask, al acceder a la URL => / En ese caso, se abre un formulario simple.

# Nombre de archivo : example.py
# Derechos de autor : 2020 Por w3codebox
# Autor por: es.oldtoolbag.com
# Fecha : 2020-08-08
@app.route('/)
 def index():
     return render_template('index.html')

Esta página HTML contiene un campo de entrada de texto, el código completo se muestra a continuación -

# Nombre de archivo : example.py
# Derechos de autor : 2020 Por w3codebox
# Autor por: es.oldtoolbag.com
# Fecha : 2020-08-08
<html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 <title>Ejemplo de Cookies Flask</title>
 </head>
    <body>
       <form action=""/setcookie" method="POST">
          <p><h3>Ingrese userID</h3></p>
          <p><input type='text' name='name'>/></p>
          <p><input type='submit' value='Iniciar sesión'>/></p>
       </form>
    </body>
 </html>

El formulario se envía a la URL => /setcookie. La función de vista asociada establece un nombre de cookie: userID y se presenta en otra página.

# Nombre de archivo : example.py
# Derechos de autor : 2020 Por w3codebox
# Autor por: es.oldtoolbag.com
# Fecha : 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 contiene enlaces a otra función de vista getcookie() que lee y muestra el valor del cookie en el navegador.

# Nombre de archivo : example.py
# Derechos de autor : 2020 Por w3codebox
# Autor por: es.oldtoolbag.com
# Fecha : 2020-08-08
@app.route('/getcookie)
 def getcookie():
     name = request.cookies.get('userID')
     return '<h1>bienvenido'+name+"</h1"

El código completo de la aplicación se muestra a continuación -

# Nombre de archivo : example.py
# Derechos de autor : 2020 Por w3codebox
# Autor por: es.oldtoolbag.com
# Fecha : 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>Bienvenido,+name+"</h1"
 if __name__ == '__main__':
     app.run(debug=True)

Ejecute la aplicación y acceda a la URL => http://localhost:5000/El resultado de la configuración de la cookie se muestra a continuación -

La salida de la cookie se muestra a continuación -