使用Django中的Session和Cookie来传递数据
from django.shortcuts import render, redirect
from django.http import HttpResponse
from django.contrib.sessions.backends.db import SessionStore
# 创建一个Session存储后端
session_store = SessionStore()
def set_session_view(request):
# 启动会话或获取现有会话的键
session_key = request.session.session_key
if session_key is None:
# 如果会话不存在,创建一个新的会话键
session_key = session_store.create_session_key()
# 设置会话值
request.session['my_key'] = 'my_value'
# 将会话键添加到cookie中
response = HttpResponse('Session data is set.')
response.set_signed_cookie(session_key, signed_data, salt='salt', httponly=True)
return response
def get_session_view(request):
# 通过cookie获取会话键
session_key = request.get_signed_cookie(session_key, salt='salt', max_age=None)
# 加载会话数据
request.session.session_key = session_key
# 获取会话值
my_data = request.session.get('my_key', None)
return HttpResponse(f'Session data is {my_data}.')
这个例子展示了如何在Django中使用Session和Cookie来传递数据。首先,我们创建了一个Session存储后端session_store
。然后,在set_session_view
视图中,我们设置了一个会话键,并将数据存储在会话中。随后,我们通过设置签名cookie将会话键发送到客户端。在get_session_view
视图中,我们从cookie中获取会话键,加载会话数据,并获取我们之前设置的值。
评论已关闭