SessionMiddleware
-session不是原生request对象的属性,在中间件中放进去的通过(django.contrib.sessions.middleware.SessionMiddleware)
1.首先请求过来通过SESSION_COOKIE_NAME,找到cookie的id,就是session的key,
2.从SessionStore通过session_key取出session
3.存到request中
源码如下:
class SessionMiddleware(MiddlewareMixin):
def __init__(self, get_response=None):
self.get_response = get_response
engine = import_module(settings.SESSION_ENGINE)
self.SessionStore = engine.SessionStore
def process_request(self, request):
#首先根据request请求中的SESSION_COOKIE_NAME,找到cookie的id,就是session的key,然后从SessionStore通过session_key取出session
session_key = request.COOKIES.get(settings.SESSION_COOKIE_NAME)
request.session = self.SessionStore(session_key)
版权声明:本文为wuyong15221125927原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。