Django 会话

Django 会话

会话是与 Web 应用程序进行交互期间在服务器端存储信息的机制。

Django 中,默认情况下会话存储在数据库中,还可以使用基于文件和缓存的会话。它是通过一个中间件实现的,并可以通过以下代码启用。

django.contrib.sessions.middleware.SessionMiddleware 放入 MIDDLEWARE 中,并将 django.contrib.sessions 放入 settings.py 文件的 INSTALLED_APPS 中。

要在视图中设置和获取会话,可以使用 request.session ,并且可以多次设置。

class backends.base.SessionBase 是所有会话对象的基类。它包含以下标准方法。

方法 描述
__getitem__(key) 用于获取会话值。
__setitem__(key, value) 用于设置会话值。
__delitem__(key) 用于删除会话对象。
__contains__(key) 检查容器是否包含特定的会话对象。
get(key, default=None) 用于获取指定键的会话值。

让我们来看一个例子,其中我们将设置和获取会话值。在 views.py 文件中定义了两个函数。

Django 会话示例

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

//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);

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

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

Django 会话

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

Django 会话

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程