Python | Marco de sesiones usando django

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:

  1. MIDDLEWARE_CLASSES tiene ‘django.contrib.sessions.middleware.SessionMiddleware’ activado
  2. INSTALLED_APPS tiene ‘django.contrib.sessions’ agregado.
  3. # 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:

  1. Agregue y actualice el código en la función de vista de índice/li>
  2. Actualizar la función de vista acerca de
  3. 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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *