django之SessionMiddleware,控制session的中间件

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版权协议,转载请附上原文出处链接和本声明。