页面的操作都是一样的,配置路由,def get(self,request)请求
执行这个函数,渲染这个页面。然后修改数据,动态显示,查询数据
html的分析素材复制到tenplates
不同的页面 共享同一个数据
放在全局上下文中
将当前的注册对象保存到session中
如何使用session:
将当前注册用户对象保存到session中
request.session['user'] = user
保存到哪里呢?数据库表会有一个Django_session表,这应该是所有的迁移文件生成的吧
会把所有的session数据都保存到这里边来 我们是要对我们的对象进行序列化的 json.down 什么鬼的了
如果不序列化,是不会保存到数据库的,而是缓存到本地 也可以保存到Redis当中
那么这个Redis是个什么东西呢 https://www.cnblogs.com/supery007/p/8145416.html
Key-Value数据库,并提供多种语言的API
redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,
包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)
session_engine 默认是保存在数据库的 保存到缓存,所有把.db 改成.cache cache 是缓存
SESSION_ENGINE = 'django.contrib.sessions.backends.cache'
CACHES = {
'default': {
'BACKEND': 'django.core.cache.backends.locmem.LocMemCache',
},"session-redis": {
"BACKEND": "django_redis.cache.RedisCache",
"LOCATION": "redis://127.0.0.1:6379/0",
}
}
CACHE_MIDDLEWARE_KEY_PREFIX = ''
CACHE_MIDDLEWARE_SECONDS = 600
CACHE_MIDDLEWARE_ALIAS = 'session-redis'
现在的需求是将session保存到缓存中
但是session的默认设置是数据库,要修改的一个,缓存又默认是本地,又要修改缓存cache的
存储位置
https://django-redis-chs.readthedocs.io/zh_CN/latest/ Django-redis 对应的中文文档
去查看如何配置Django-redis
redis数据库安装好之后会有十六个数据库的实例 保存到缓存中,那就是redis了呀
记得安装Django-redis的模块
因为这个缓存是要共享的,所以要在userapp下建一个全局上下文的py文件
def getSessionInfo(request):
return {'user':request.session.get('user','')}
这个信息写好了之后,要在settings中配置tamplates这变量值
'userapp.mycontextprocessor.getSessionInfo'
为什么要添加这个在tamplates这里呢?因为共享的都防在这里吗
然后怎么用 user.uname
这节又复习了Django-redis 缓存机制
还有session的使用
request.session.get(保存的数据)
全局上下问的共享