在Django的视图(View)外使用Session的方法

 更新时间:2015年07月23日 09:17:03   投稿:goldensun  
这篇文章主要介绍了在Django的视图(View)外使用Session的方法,Django是最具人气的Python web开发框架,需要的朋友可以参考下

从内部来看,每个session都只是一个普通的Django model(在 django.contrib.sessions.models 中定义)。每个session都由一个随机的32字节哈希串来标识,并存储于cookie中。 因为它是一个标准的模型,所以你可以使用Django数据库API来存取session。

>>> from django.contrib.sessions.models import Session
>>> s = Session.objects.get(pk='2b1189a188b44ad18c35e113ac6ceead')
>>> s.expire_date
datetime.datetime(2005, 8, 20, 13, 35, 12)

你需要使用get_decoded() 来读取实际的session数据。 这是必需的,因为字典存储为一种特定的编码格式。

>>> s.session_data
'KGRwMQpTJ19hdXRoX3VzZXJfaWQnCnAyCkkxCnMuMTExY2ZjODI2Yj...'
>>> s.get_decoded()
{'user_id': 42}

何时保存Session

缺省的情况下,Django只会在session发生变化的时候才会存入数据库,比如说,字典赋值或删除。

# Session is modified.
request.session['foo'] = 'bar'

# Session is modified.
del request.session['foo']

# Session is modified.
request.session['foo'] = {}

# Gotcha: Session is NOT modified, because this alters
# request.session['foo'] instead of request.session.
request.session['foo']['bar'] = 'baz'

你可以设置 SESSION_SAVE_EVERY_REQUEST 为 True 来改变这一缺省行为。如果置为True的话,Django会在每次收到请求的时候保存session,即使没发生变化。

注意,会话cookie只会在创建和修改的时候才会送出。 但如果 SESSION_SAVE_EVERY_REQUEST 设置为 True ,会话cookie在每次请求的时候都会送出。 同时,每次会话cookie送出的时候,其 expires 参数都会更新。

相关文章

  • 图文详解Python中最神秘的一个魔法函数

    图文详解Python中最神秘的一个魔法函数

    Python进阶之路我觉得有两个东西一定要了解,一个是魔法函数,下面这篇文章主要给大家介绍了关于Python中最神秘的一个魔法函数的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2021-12-12
  • 解决jupyter notebook 前面书写后面内容消失的问题

    解决jupyter notebook 前面书写后面内容消失的问题

    这篇文章主要介绍了解决jupyter notebook 前面书写后面内容消失的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-04-04
  • pandas实现对一列/多列进行数据区间筛选

    pandas实现对一列/多列进行数据区间筛选

    这篇文章主要介绍了pandas实现对一列/多列进行数据区间筛选方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-02-02
  • Python全栈之for循环

    Python全栈之for循环

    这篇文章主要为大家介绍了Python for循环,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2021-11-11
  • python制作填词游戏步骤详解

    python制作填词游戏步骤详解

    在本文里我们给大家整理了关于python制作填词游戏的具体步骤以及实例代码,需要的朋友们跟着学习下。
    2019-05-05
  • Python Web开发模板引擎优缺点总结

    Python Web开发模板引擎优缺点总结

    这篇文章主要介绍了Python Web开发模板引擎优缺点总结,需要的朋友可以参考下
    2014-05-05
  • (手写)PCA原理及其Python实现图文详解

    (手写)PCA原理及其Python实现图文详解

    这篇文章主要介绍了Python来PCA算法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧,希望能给你带来帮助
    2021-08-08
  • python PrettyTable模块的安装与简单应用

    python PrettyTable模块的安装与简单应用

    prettyTable 是一款很简洁但是功能强大的第三方模块,主要是将输入的数据转化为格式化的形式来输出,这篇文章主要介绍了python PrettyTable模块的安装与简单应用,感兴趣的小伙伴们可以参考一下
    2019-01-01
  • Google colab中从kaggle中接入数据的操作方法

    Google colab中从kaggle中接入数据的操作方法

    这篇文章主要介绍了Google colab中如何从kaggle中接入数据,本文涉及到两大平台内容,所以我默认你已经拥有了,并且使用过了一段时间的google账号和kaggle账号,需要的朋友可以参考下
    2024-03-03
  • Linux 发邮件磁盘空间监控(python)

    Linux 发邮件磁盘空间监控(python)

    这篇文章主要介绍了Linux发邮件磁盘空间监控功能,python实现,需要的朋友可以参考下
    2016-04-04

最新评论