搜索
当前位置: sk彩票 > 对象字典 >

如何使用django session

gecimao 发表于 2019-05-14 15:03 | 查看: | 回复:

  Django 完全支持匿名 Session。 Session 框架允许每一个用户保存并取回数据。它将数据保存在服务器端,并将发送和接收 Cookie 的操作包装起来。在 Cookie 中包含的是 Session ID,而不是数据本身。

  只有在使用 Memcached 作为缓冲后台时,才能使用基于缓冲区的 Session。因为以本地内存作为缓冲后台时,它存储缓冲数据的时间太短了,这样直接访问文件或数据库的速度,要比通过缓冲区访问文件或数据库的速度更快一些。

  从数据库中删除当前的 Session 数据并且重新生成一个 Session 键,并将其发送给浏览器。这用于需要确保 Session 数据无法再从用户浏览器访问时,譬如调用 django.contrib.auth.logout() 时。

  设定检测 Cookie 以检验用户的浏览器是否支持 Cookie。因 Cookie 的工作方式,在下一次用户请求之前,您都无法得到测试结果。详情参考下面的 设置检测 Cookie 。

  您在视图中的任何位置都可以修改 request.session ,改多少次都行。

  在 Session 字典中,以下划线开始的键,是保留给 Django 在内部使用的。

  不要用一个新的对象覆盖 request.session ,也不要访问或修改它的属性,它只能作为一个类字典对象使用。

  注意,要获得 Session 字典,需要调用 get_decoded() ,这是因为字典是以编码的方式存储的:

  缺省情况下,Django 只在 Session 被修改时才会保存它,即只有字典中的值被修改或删除时:

  对于在上面的最后一个,通过显示地设定 Session 对象的 modified 属性,可以通知 Session 对象它被修改了:

  同样地,在送出 Cookie 时,它的 expires 部分每次都会被更新。

  这个设置具有全局的缺省值,但可以通过调用 request.session.set_expiry() 为每个 Session 设定独立的值,相关内容在上述的 在视图中使用 Session 中有所阐述。

  注意,Session 数据有可能堆积在数据库表格 django_session 中,Django 不提供 自动清除它们的功能。它把定期清空 Session 数据的任务留给了您。

  要理解这个问题,想像一下用户使用 Session 时会发生什么。当用户登录,Django 向表格 django_session 中添加一条记录。每当 Session 数据变化时,Django 会更新这条记录。如果用户手工退出了,Django 会删除它。但是,如果用户 没有 退出,则这条记录永远都不会被删除。

  如果您使用基于文件的 Session 存储,则此变量控制着 Django 存储 Session 数据的目录。

  对于 Session Cookie,是否要使用安全模式。如果将此设定为 True ,则 Cookie 将会被标记为“安全”,这种情况下,浏览器就需要确定该 Cookie 是否是通过 HTTPS 连接发送的。

  是否当用户关闭浏览器时就让 Session 过期。详情参考上文 与浏览器同步的 Session 和持久的Session 。

  是否在每次请求时都保存 Session 数据。如果此项为 False (缺省值),则 Session 数据只有在它被修改后才会保存,即它的字典值被赋值或删除时。

本文链接:http://moodyjews.net/duixiangzidian/408.html
随机为您推荐歌词

联系我们 | 关于我们 | 网友投稿 | 版权声明 | 广告服务 | 站点统计 | 网站地图

版权声明:本站资源均来自互联网,如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

Copyright @ 2012-2013 织梦猫 版权所有  Powered by Dedecms 5.7
渝ICP备10013703号  

回顶部