session源码

session源码

1, 导入

from django.contrib.sessions.middleware import SessionMiddleware

sessionMiddleware 下的__init__

SESSION_ENGINE

2,找SESSION_ENGINE 项目sessions.py配置文件里没有该值

3,到父类中找SESSION_ENGINE

4,

5,继续往上找,找到global_settings

6,SESSION_ENGINE默认写入django的sessions表里,我们也可以自己配置, 写入其他表,缓存,文件中。

 

知识点: from django.conf import settings

settings.A --- > 用户下的settings找变量A,如果找不到 --- > global_settings里找

 

7,import_module(settins.SESSION_ENGINE)

知识点:

import views

import_module "views"

SessionStore

8, settings.py

9, self.SessionStore是一个类名字

 

SessionMiddleware 下的process_request

SESSION_COOKIE_NAME

10, 接下来继续往下走process_request

11, SESSION_COOKIE_NAME = "sessionid"

 

13,取COOKIES里面没有sesionid这个值

session_key = get 方法如果取不到就是None,如果有值的话,就是随机字符串

request.session 就是一个类对象

db > SessionStore > SessionBase

14, 

15.

16,json类型序列化的格式

进入gloabl_settings

17,

class A(object):
    x=1
a=A()
print(a.x)  # 1
a.y=3
print(a.y) # 3

18.

 

 

19,

 

_session

20, 赋值,还为save保存到数据库中。

# 知识点
# 方式1
    obj = Userinfo.objects.create(username="alex")
# 方式2
    obj = Userinfo[username="alex"]
    obj.save()

21,

 

SessionMiddleware下的process_response

is_empty

1, 

from django.contrib.sessions.middleware import SessionMiddleware

2, is_empty = false

3, 

4, 

5,

 

posted @ 2018-10-09 10:30  猴里吧唧  阅读(329)  评论(0)    收藏  举报