【问题标题】:Check if Session Key is set检查是否设置了会话密钥
【发布时间】:2011-04-23 22:51:29
【问题描述】:

我正在尝试在 Django 中创建一个相对简单的购物车。我将购物车存放在request.session['cart']。因此,当向其中添加任何内容时,我需要访问此会话中的数据。但是,如果会话尚未设置,我将无法访问它而不会收到错误消息。有什么方法可以检查是否设置了会话,如果不存在也可以设置?

【问题讨论】:

    标签: python django django-sessions


    【解决方案1】:

    我假设您想检查是否在会话中设置了 key,而不是是否设置了 session(不知道后者是什么意思)。如果是这样:

    你可以这样做:

    if key not in request.session:
        # Set it.
    

    在你的情况下:

    if 'cart' not in request.session:
        # Set it.
    

    编辑:将代码 sn-p 更改为使用 key not in 而不是 not key in。谢谢@katrielalex。

    【讨论】:

    • pythonic 方式是if key not in request.session
    【解决方案2】:

    您可以在会话字典上使用get-方法,如果键不存在,它不会抛出错误,但返回 none 作为默认值或您的自定义默认值:

    cart = request.session.get('cart')
    cart = request.session.get('cart', 'no cart')
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-09-15
      • 1970-01-01
      • 2014-05-24
      • 1970-01-01
      • 2012-05-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多