Python技术迷

Django教程-Session

整理:python架构师

会话是一种在与 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 render  from django.http import HttpResponse  def 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 映射。

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

Image

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

Image

Image
 1
Image
热门推荐

Image