Django session

django session配置

不作任何配置可能有以下错误
django.db.utils.ProgrammingError: (1146, "Table 'test.django_session' doesn't exist")

1.make migrate

2.C:\Users\Administrator\AppData\Local\Programs\Python\Python38\python manage.py createsuperuser

3.页面取值:{{request.session.cnt}}

https://docs.djangoproject.com/en/dev/topics/http/sessions/#configuring-the-session-engine
4.如存修改session设置如:

1)保存到缓存中


在 settings.py 中增加 SESSION_ENGINE 配置。


SESSION_ENGINE = 'django.contrib.sessions.backends.cache'

仅会话级保存,当缓存满时会删掉一部分数据,且服务器重启时数据将清空。

2)缓存数据库同时存储,先从session中找,找不到时从数据库中找。
SESSION_ENGINE = 'django.contrib.sessions.backends.cached_db'

3)保存到文件中


SESSION_ENGINE = 'django.contrib.sessions.backends.file'
# 建议配置
SESSION_FILE_PATH = BASE_DIR+'\\xxx'
不配置见各系统临时文档的存储位置,linux下注意授权
C:\Users\Administrator\AppData\Local\Temp
。。。

session取值时会报错:
    return self._session[key]
KeyError: 'cnt'

cnt=request.session.setdefault("cnt",0)

如果出现QueryDict' object is not callable
有可能是[],()之类取值语法错误

4)保存到cookie中
。这种方案适用于对数据保密性不严格的场景。

SESSION_ENGINE = 'jango.contrib.sessions.backends.signed_cookies'

# 建议配置,阻止 javascript 对会话数据的访问,提高安全性。

SESSION_COOKIE_HTTPONLY= True

5.可选配置
# Session的cookie保存在浏览器上时的key
SESSION_COOKIE_NAME = "sessionid"

# Session的cookie保存的路径
SESSION_COOKIE_PATH = "/"

# Session的cookie保存的域名
SESSION_COOKIE_DOMAIN = None

# 是否Https传输cookie
SESSION_COOKIE_SECURE = False

# 是否Session的cookie只支持http传输
SESSION_COOKIE_HTTPONLY = True

# Session的cookie失效日期(秒值)
SESSION_COOKIE_AGE = 3600

# 是否关闭浏览器使得Session过期
SESSION_EXPIRE_AT_BROWSER_CLOSE = False

# 是否每次请求都保存Session,默认修改之后才保存
SESSION_SAVE_EVERY_REQUEST = False

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值