个性化阅读
专注于IT技术分析

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) 用于获取指定键的会话值。

让我们看一个示例, 在该示例中我们将设置并获取会话值。 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);

网址映射可调用这两个函数。

// 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-session 1
赞(0)
未经允许不得转载:srcmini » Django会话session

评论 抢沙发

评论前必须登录!