webpy搭配wsgi使用session的问题

http://flyash.itcao.com/post_tag/webpy

 

 

webpy搭配wsgi使用session的问题

项目使用webpy作为python的web框架,同时借助于mod_wsgi搭建在apache服务器之上。

随着项目的不断推进,用户相关的需求被引入,自然就用到了session。

在webpy官方也给出了session及用户认证相关的例子,可以参考:

http://webpy.org/cookbook/sessions

http://webpy.org/cookbook/userauthpgsql

在结合自身项目时,遇到了点小问题,总是报这样的错误:

AttributeError: ‘function’ object has no attribute ‘add_processor’

经过一番折腾,在google讨论组找到了原因:

http://groups.google.com/group/webpy/browse_thread/thread/5a41ad7a10dca68f

对于wsgi是这样的

application = web.application(urls, globals(), autoreload=True).wsgifunc()

注意这里是globals()

而webpy官方给出的例子中是locals()

app = web.application(urls, locals())
session = web.session.Session(app, web.session.DiskStore(‘sessions’), initializer={‘count’: 0})

难怪会出错呢

原有的保持不变,新增加一个app用来为session服务就好了

app = web.application(urls, locals())

但是又遇到了新的问题:

AttributeError: ‘ThreadedDict’ object has no attribute

费了九牛二虎之力还是没有搞定,都准备放弃webpy了,看了一下django,重构的成本有点大,再说webpy不可能不行啊,终于还是在webpy官方找到了原因:

Note: mod_wsgi + sessions

If you use sessions with mod_wsgi, you should change you code like below:

app = web.application(urls, globals())

curdir = os.path.dirname(__file__)
session = web.session.Session(app, web.session.DiskStore(os.path.join(curdir,’sessions’)),)

application = app.wsgifunc()

现在来输出一下session_id就不再报错了

[Thu Dec 08 10:59:38 2011] [error]
[Thu Dec 08 10:59:38 2011] [error] da397a83fc1f92f4d4ed1fa919b6f50d105392a5

哎,真是的,当初只看了一半,看来有时候还是应该静下心来仔细的阅读一下文档,似乎做项目太浮躁了,只管实现就好,真是不应该啊。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值