0%

django-Session的配置与使用

django Session的配置与使用

# 所有的 session 默认配置是在源码中的 conf/global_settings.py
############
# SESSIONS #
############

以下内容存储位置,任选其一即可:即 SESSION_ENGINE 的配置只能选一个
# # session 相关数据存储位置 : 数据库
SESSION_ENGINE = "django.contrib.sessions.backends.db"

# session 相关数据存储位置 : 文件
SESSION_ENGINE = "django.contrib.sessions.backends.file"
SESSION_FILE_PATH = "None" # 如果要存储到文件中,需要先创建文件夹 相对路径(也可以绝对路径)

# # 存储到缓存
SESSION_ENGINE = "django.contrib.sessions.backends.cache"
SESSION_CACHE_ALIAS = "default"

# # 存储到 缓存 + 数据库
SESSION_ENGINE = "django.contrib.sessions.backends.cached_db"
SESSION_CACHE_ALIAS = "default"

# 如果存储到 cookie中,需要配置下面所有项目
SESSION_COOKIE_NAME = "sessionid"
SESSION_COOKIE_AGE = 60 * 60 * 24 * 7 * 2 # 生存时间
SESSION_COOKIE_DOMAIN = None # 域名
SESSION_COOKIE_SECURE = False
SESSION_COOKIE_PATH = "/"
SESSION_COOKIE_HTTPONLY = True
SESSION_COOKIE_SAMESITE = "Lax"
SESSION_SAVE_EVERY_REQUEST = False
SESSION_EXPIRE_AT_BROWSER_CLOSE = False

# 序列号 session信息
SESSION_SERIALIZER = "django.contrib.sessions.serializers.JSONSerializer"
  • 路由:
urlpatterns = [
# path('admin/', admin.site.urls),
path('x1/', x1, name="x1"),
path('x2/', x2, name="x2"),
]
from django.urls import path
from apps.app01 import views
from django.shortcuts import HttpResponse

# 访问 /x1 设置session 属性
# session 的设置
def x1(request):
request.session['id'] = 999
request.session["name"] = "wupeiqi"
request.session["age"] = 25
return HttpResponse("x1")

# 访问 x2 校验 session
# session的读取
def x2(request):
print(request.session.get("id"))
print(request.session.get("name"))
print(request.session.get("age"))

# del request.session["id"] # 删除 session 相关信息 >>> 如果二次访问,浏览器会报错 推荐下面方法使用
request.session.clear() # 清除session 相关数据

return HttpResponse("x2")

# 路由关系
urlpatterns = [
path('x1/', x1, name="x1"),
path('x2/', x2, name="x2"),
]