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) | 用于获取指定key的session值。 |
👉点击领取:最全Python资料合集
让我们看一个设置和获取会话值的示例。views.py文件中定义了两个函数。
Django 会话示例
第一个函数用于设置,第二个函数用于获取会话值。
//视图.py
from django.shortcuts import renderfrom django.http import HttpResponsedef setsession(request):request.session['sname'] = 'irfan'request.session['semail'] = '[email protected]'return HttpResponse("session is set")def getsession(request):studentname = request.session['sname']studentemail = request.session['semail']return HttpResponse(studentname+" "+studentemail);
// url.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设置会话
会话已设置,要检查它,请使用localhost:8000/gsession