Django会话session

会话是一种在与Web应用程序交互期间将信息存储在服务器端的机制。
在Django中, 默认情况下, 会话存储在数据库中, 并且还允许基于文件和基于缓存的会话。它是通过一个中间件实现的, 可以通过使用以下代码来启用。
将django.contrib.sessions.middleware.SessionMiddleware放在MIDDLEWARE中, 并将django.contrib.sessions放在settings.py文件的INSTALLED_APPS中。
要在视图中设置和获取会话, 我们可以使用request.session, 也可以设置多次。
backends.base.SessionBase类是所有会话对象的基类。它包含以下标准方法。

方法 描述
__getitem__(key) 它用于获取会话值。
__setitem__(key, value) 用于设置会话值。
__delitem__(key) 用于删除会话对象。
__contains__(key) 它检查容器是否包含特定的会话对象。
get(key, default=None) 用于获取指定键的会话值。
让我们看一个示例, 在该示例中我们将设置并获取会话值。 views.py文件中定义了两个函数。
Django会话示例
第一个函数用于设置, 第二个函数用于获取会话值。
【Django会话session】//views.py
from django.shortcuts import renderfrom django.http import HttpResponsedef setsession(request):request.session['sname'] = 'irfan'request.session['semail'] = 'irfan.sssit@gmail.com'return HttpResponse("session is set")def getsession(request):studentname = request.session['sname']studentemail = request.session['semail']return HttpResponse(studentname+" "+studentemail);

网址映射可调用这两个函数。
// urls.py
from django.contrib import adminfrom django.urls import pathfrom myapp import viewsurlpatterns = [path('admin/', admin.site.urls), path('index/', views.index), path('ssession', views.setsession), path('gsession', views.getsession)]

运行服务器
$ python3 manage.py runserver

并使用localhost:8000 / ssession设置会话
Django会话session 已设置会话, 要检查它, 请使用localhost:8000 / gsession
Django会话session

    推荐阅读