小编Ant*_*kiy的帖子

Django会话为匿名用户

我希望能够收集匿名用户和登录用户使用webapp的基本统计信息.

这里的共性是使用会话ID,我可以为登录和注销的用户存储数据,并且仍然能够将存储的统计信息链接到给定的会话(会话所属的人是无关紧要的).

但是,我session_key遇到了收集问题的问题,因为当匿名用户进入网站时似乎没有设置(可能是因为Django会话只在修改时保存).

当我使用登录用户测试视图时:

def create(request, *args, **kwargs):
    print request.session.session_key
Run Code Online (Sandbox Code Playgroud)

对于登录用户,将session_key打印.对于已注销的用户或匿名用户,这是None.在第一次请求到站点时,会话不存在,因此对视图不可用.

我目前的计划是创建一个自定义中间件作为官方会话中间件的子类,但是process_request()为那些没有一个via的人重写实例化会话session.save().

我对这种方法的唯一关注是,我不确定它是否会对Django的其他部分产生不可预见的后果 - 人们有什么建议吗?

django session django-sessions

7
推荐指数
1
解决办法
1294
查看次数

为什么Python builin sum()函数不支持字符串?

sum()功能仅适用于数字,而不适用于字符串.

  int_lst = [1, 2]
  sum(int_lst)
=> 3

   str_lst = ['a', 'b']
   sum(str_lst)
Traceback (most recent call last):
  File "python", line 1, in <module>
TypeError: unsupported operand type(s) for +: 'int' and 'str'
Run Code Online (Sandbox Code Playgroud)

我发现这种行为很奇怪,因为sum()函数只是一种更加pythonic的方式reduce(lambda i, sum:i+sum).并且减少允许我连接字符串,而sum()不是.

来自sum()的python文档

iterable的项通常是数字,并且不允许起始值是字符串.

所以为什么?

OOP教我们制作多态的东西因为它的灵活性.

python sum

-1
推荐指数
1
解决办法
231
查看次数

标签 统计

django ×1

django-sessions ×1

python ×1

session ×1

sum ×1