龙空技术网

Django框架第十讲-session

互联网奇点 81

前言:

如今各位老铁们对“django使用session”可能比较关怀,咱们都需要剖析一些“django使用session”的相关文章。那么小编也在网络上搜集了一些对于“django使用session””的相关资讯,希望兄弟们能喜欢,大家一起来了解一下吧!

状态保持http的协议是无状态的:每次的请求都是一次新的请求,不会记得之前通信状态客户端与服务器端的一次通信,就是一次会话实现状态保持的方式:在客户端或服务器端存储与会话有关的数据存储方式包括cookie、session,会话一般指session对象使用cookie,所有数据存储在客户端,注意不要存储敏感信息推荐使用sesison方式,所有数据存储在服务器端,在客户端cookie中存储session_id状态保持的目的是在一段时间内跟踪请求者的状态,可以实现跨页面访问当前请求者的数据注意:不同的请求者之间不会共享这个数据,与请求者一一对应启用session使用django-admin startproject创建的项目默认启用在settings.py文件中禁用会话:删除上面指定的两个值,禁用会话将节省一些性能消耗使用session启用会话后,每个HttpRequest对象将具有一个session属性,它是一个类字典对象get(key, default=None):根据键获取会话的值clear():清除所有会话flush():删除当前的会话数据并删除会话的Cookiedel request.session['member_id']:删除会话用户登录示例操作效果如下图:在views.py文件中创建视图配置url创建模板index.html创建模板login.html会话过期时间set_expiry(value):设置会话的超时时间如果没有指定,则两个星期后过期如果value是一个整数,会话将在values秒没有活动后过期若果value是一个imedelta对象,会话将在当前时间加上这个指定的日期/时间过期如果value为0,那么用户会话的Cookie将在用户的浏览器关闭时过期如果value为None,那么会话永不过期修改视图中login_handle函数,查看效果存储session使用存储会话的方式,可以使用settings.py的SESSION_ENGINE项指定基于数据库的会话:这是django默认的会话存储方式,需要添加django.contrib.sessions到的INSTALLED_APPS设置中,运行manage.py migrate在数据库中安装会话表,可显示指定为

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

基于缓存的会话:只存在本地内在中,如果丢失则不能找回,比数据库的方式读写更快

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

可以将缓存和数据库同时使用:优先从本地缓存中获取,如果没有则从数据库中获取

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

使用Redis缓存session会话还支持文件、纯cookie、Memcached、Redis等方式存储,下面演示使用redis存储安装包

pip install django-redis-sessions

修改settings中的配置,增加如下项管理redis的命令点击关注发私信(基础视频),即可获取下载链接:

标签: #django使用session