会话是一种在与 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)用于获取指定key的session值。

让我们看一个设置和获取会话值的示例。views.py文件中定义了两个函数。

Django 会话示例

第一个函数用于设置,第二个函数用于获取会话值。

//视图.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);  

用于调用这两个函数的 URL 映射。

// url.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设置会话

1.png

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

2.png

标签: django语言, django教程, django技术, django学习, django学习教程, django下载, django开发, django入门教程, django进阶教程, django高级教程, django面试题, django笔试题, django编程思想