📅  最后修改于: 2020-12-31 00:47:50             🧑  作者: Mango
会话是一种在与Web应用程序交互期间将信息存储在服务器端的机制。
在Django中,默认情况下,会话存储在数据库中,并且还允许基于文件的会话和基于缓存的会话。它是通过一个中间件实现的,可以通过使用以下代码来启用。
将django.contrib.sessions.middleware.SessionMiddleware放在MIDDLEWARE中,并将django.contrib.sessions放在settings.py文件的INSTALLED_APPS中。
要在视图中设置和获取会话,我们可以使用request.session ,也可以设置多次。
backends.base.SessionBase类是所有会话对象的基类。它包含以下标准方法。
Method | Description |
---|---|
__getitem__(key) | It is used to get session value. |
__setitem__(key, value) | It is used to set session value. |
__delitem__(key) | It is used to delete session object. |
__contains__(key) | It checks whether the container contains the particular session object or not. |
get(key, default=None) | It is used to get session value of the specified key. |
让我们看一个示例,在该示例中我们将设置并获取会话值。 views.py文件中定义了两个函数。
第一个函数用于设置,第二个函数用于获取会话值。
//views.py
from django.shortcuts import render
from django.http import HttpResponse
def 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 admin
from django.urls import path
from myapp import views
urlpatterns = [
path('admin/', admin.site.urls),
path('index/', views.index),
path('ssession',views.setsession),
path('gsession',views.getsession)
]
运行服务器
$ python3 manage.py runserver
并使用localhost:8000 / ssession设置会话
已设置会话,要检查它,请使用localhost:8000 / gsession