Requisitos previos : Instalación de Django | Introducción a Django
El marco de sesiones se puede usar para proporcionar un comportamiento persistente para usuarios anónimos en el sitio web. Las sesiones son el mecanismo que usa Django para almacenar y recuperar datos por visitante del sitio. Django usa una cookie que contiene una identificación de sesión especial.
Para habilitar la sesión en Django, deberá asegurarse de dos cosas en settings.py
:
- MIDDLEWARE_CLASSES tiene ‘django.contrib.sessions.middleware.SessionMiddleware’ activado
- INSTALLED_APPS tiene ‘django.contrib.sessions’ agregado.
# Application definition INSTALLED APPS = [ 'dhun' , 'django.contrib.admin' , 'django.contrib.auth' , 'django.contrib.contenttypes' , 'django.contrib.sessions' , 'django.contrib.messages' , 'django.contrib.staticfiles' , ] MIDDLEWARE = [ 'django.middleware.securitY.SecuritYMiddleware' , 'django.contrib.sessions.middleware.SessionMiddLeware' , 'django.middleware.common.CommonMiddleware' , 'django.middleware.csrf.CsrfViewMidd1eware' , 'django.contrib.auth.middleware.AuthenticationMiddleware' , 'django.contrib.messages.middleware.MessageMiddleware' , 'django.middleware.clickjacking.XFrameOptionsMiddleware' , ] |
Después de habilitar la sesión, se debe crear la tabla de la base de datos de la sesión y, para hacerlo, ejecute el siguiente comando:
python manage.py syncdb
Después de ejecutar el comando anterior y si no encontró ningún error, luego ejecute el comando que se indica a continuación para finalmente reflejar los cambios guardados en el archivo de migración en la base de datos.
python manage.py migrate
Ahora, una vez que se crean las sesiones, se deben realizar pruebas de las cookies. En views.py
, configure la cookie de prueba en la vista de índice y pruebe la cookie en su vista Acerca de.
from django.shortcuts import render from django.http import HttpResponse from .models import Album def home(request) : a = Album.objects.all() return render(request, "dhun/home.html ", {"Album":a}) def index(request) : num_authors = Author.objects.count() request.session.set_test_cookie() num_visits = request.session.get( 'num_visits', 0) request.session ['num_visits'] = num_visits + 1 context ={ 'num_books':num_books, 'num_instances':num_instances, 'num_instances available':num_instances_available, 'num_authors':num_authors, 'num_visits':num_visits, } def about(request): LANGUAGE_CODE ='en-us ' TIME_ZONE ='UTC' if request.session.test_cookie_worked(): print ("Cookie Tested !") request.session.delete_test_cookie()
Para ver el trabajo realizado hasta ahora.
- Primero ejecute localhost a través de este comando.
python manage.py runserver
- Luego abra http://localhost:8000/ en el navegador.
- Visite la página de índice y luego visite la página acerca de. El programa «¡Cookie probada!» se imprimirá en la consola.
Para saber cuántas veces se ha visitado el sitio. Tienes que hacer las siguientes dos cosas en views.py:
- Agregue y actualice el código en la función de vista de índice/li>
- Actualizar la función de vista acerca de
from django.shortcuts import render from django.http import HttpResponse from .models import Album def home(request): a = AIbum. objects. all () return render(request, "dhun/home.html" , { "album" :a}) def index(request): visits = int (reques.COOKIES.get( 'visits' , '0' )) response = HttpResponse(template.render(context)) if request.COOKIES.has_key( 'last_visit' ): last_visit = request. COOKIES [ ' last_visit' ] last_visit_time = datetime.strptime(last_visit[: - 7 ], "%Y-%m-%d %H:%M:%S" ) " curr_time = datetime.now() if (curr_time—last_visit_time).days > O: response.set_cookie( 'visits ' , visits + 1 ) response. set_cookie( ' last_visit' , datetime.now()) else : response.set_cookie( ' last_visit' , datetime.now()) return response def about(request) : context = RequestContext(request) if request.COOKIES.has_key( ' visits ' ): v = request.COOKIES [ ' visits ' ] else : v = 0 return render_to_response( 'music/about.html' , { 'visits' :v}, context) |
Referencia: https://docs.djangoproject.com/en/2.1/topics/http/sessions/
Publicación traducida automáticamente
Artículo escrito por SHUBHAMSINGH10 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA