Python论坛  - 讨论区

标题:Re: Re: [python-chinese] mod_python中session的问

2005年04月27日 星期三 21:12

Hoxide Ma hoxide_dirac at yahoo.com.cn
Wed Apr 27 21:12:22 HKT 2005

好问题, 不过其实也不是问题,
session在创建对象的时候自动记录了访问时间. 
参考mod_python/session.py:
class BaseSession(dict):

    def __init__(self, req, sid=None, secret=None,
lock=1,
                 timeout=0):

        ...
        self._accessed = time.time()
        ...

最近发现list里面问mod_python的人满多的,
mod_python其实是Python和Apache联系的底层库,
所以是非常原始的,
事实上python最近出现了很多很好的web开发框架,
他们基本上都能以mod_python为基础, 运行在apache上.

我去年暑假用纯mod_python编写了一个文章系统,
有session和upload等一些功能,
其实早就有代码开放了,任何人都可以和我讨论源码,
但是由于我的疏忽, 一直没把它明确得列到woodpecker上,
现在可以到 http://wiki.woodpecker.org.cn/moin/BabyWork
上看详细信息, 并进行讨论, 
--- Frank <gavin at sz.net.cn> wrote:
> 
> Session最常用的几个方法:
> 
> 
> sid=form.get("sid","")
> secret="Abstfgsd"  #可以为空
> S=Session.Session(req,sid,secret,1800)
> 
> if S.is_new() or not form.has_key("sid"):
>     #新的Session,首次访问或以前的Session超时过期
>     相应处理
> else:
>     S.load()
>     account=S["account"] #从Session中取出保存的值
>     sid=S.id()  #Session ID号
>     S["mykey"]=xxxx  #在Session保存值
>     S.set_timeout(1800)  #设置Session报废时间秒
>     S.save()             #保存所有Session值
> 
> 我目前唯一的困惑是,如果如何将Session的超时时间在
> 连续第二次访问之后时间让其顺延,比如:第一设置超时
> 间设置为30分,5分钟后再访问时,Session的超时时间以
> 我访问时间再顺延30分钟。由于忙别的时间,一直没有再
> 试验。
> 
> 
> ----- Original Message ----- 
> From: "胡兴洋" <hu.007 at 163.com>
> To: "python-chinese"
> <python-chinese at lists.python.cn>
> Sent: Tuesday, April 26, 2005 9:22 PM
> Subject: [python-chinese] mod_python中session的问题
> 
> 
> python-chinese,您好!
> 
>
哪位大侠能给个session的例子,简单就好。不知道什么原因,我的总失败。在apache里还要设置什么有关session的选项?
> 
>
环境:freebsd5.4rc3+apache2.0.53+python2.3+mod_python2.1.4
> 
> 源码index.psp:
> --------------------------------------
> 
> 
> <%=session.id()%>
> 
> 
> --------------------------------------
> 
> 输出:
> --------------------------------------
> Mod_python error: "PythonHandler mod_python.psp"
> 
> Traceback (most recent call last):
> 
>   File
>
"/usr/local/lib/python2.3/site-packages/mod_python/apache.py",
> line 299, in HandlerDispatch
>     result = object(req)
> 
>   File
>
"/usr/local/lib/python2.3/site-packages/mod_python/psp.py",
> line 297, in handler
>     p.run()
> 
>   File
>
"/usr/local/lib/python2.3/site-packages/mod_python/psp.py",
> line 191, in run
>     session = Session.Session(req)
> 
>   File
>
"/usr/local/lib/python2.3/site-packages/mod_python/Session.py",
> line 389, in Session
>     timeout=timeout, lock=lock)
> 
>   File
>
"/usr/local/lib/python2.3/site-packages/mod_python/Session.py",
> line 294, in __init__
>     timeout=timeout, lock=lock)
> 
>   File
>
"/usr/local/lib/python2.3/site-packages/mod_python/Session.py",
> line 132, in __init__
>     Cookie.add_cookie(self._req, self.make_cookie())
> 
>   File
>
"/usr/local/lib/python2.3/site-packages/mod_python/Session.py",
> line 160, in make_cookie
>     c.path = dirpath[len(docroot):]
> 
> TypeError: unsubscriptable object
> --------------------------------------
> 
>         致
> 礼!
>   
> 
>         胡兴洋
>         hu.007 at 163.com
>           2005-04-26
> 
> 
> 
>
--------------------------------------------------------------------------------
> 
> 
> _______________________________________________
> python-chinese list
> python-chinese at lists.python.cn
> http://python.cn/mailman/listinfo/python-chinese
> > _______________________________________________
> python-chinese list
> python-chinese at lists.python.cn
> http://python.cn/mailman/listinfo/python-chinese
> 

_________________________________________________________
Do You Yahoo!?
150万曲MP3疯狂搜,带您闯入音乐殿堂
http://music.yisou.com/
美女明星应有尽有,搜遍美图、艳图和酷图
http://image.yisou.com
1G就是1000兆,雅虎电邮自助扩容!
http://cn.rd.yahoo.com/mail_cn/tag/1g/*http://cn.mail.yahoo.com/event/mail_1g/

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2005年04月27日 星期三 21:22

Hoxide Ma hoxide_dirac at yahoo.com.cn
Wed Apr 27 21:22:49 HKT 2005

望了说一下, mod_python是开源的,
因此很多问题其实都可以通过阅读源码来了解.

另外希望大家能仔细阅读程序的错误提示,
python的traceback可以用来很好的定位错误的位置, 性质等.

 --- Hoxide Ma <hoxide_dirac at yahoo.com.cn> 的正文:
> 好问题, 不过其实也不是问题,
> session在创建对象的时候自动记录了访问时间. 
> 参考mod_python/session.py:
> class BaseSession(dict):
> 
>     def __init__(self, req, sid=None, secret=None,
> lock=1,
>                  timeout=0):
> 
>         ...
>         self._accessed = time.time()
>         ...
> 
> 最近发现list里面问mod_python的人满多的,
> mod_python其实是Python和Apache联系的底层库,
> 所以是非常原始的,
> 事实上python最近出现了很多很好的web开发框架,
> 他们基本上都能以mod_python为基础, 运行在apache上.
> 
> 我去年暑假用纯mod_python编写了一个文章系统,
> 有session和upload等一些功能,
> 其实早就有代码开放了,任何人都可以和我讨论源码,
> 但是由于我的疏忽, 一直没把它明确得列到woodpecker上,
> 现在可以到
> http://wiki.woodpecker.org.cn/moin/BabyWork
> 上看详细信息, 并进行讨论, 
> --- Frank <gavin at sz.net.cn> wrote:
> > 
> > Session最常用的几个方法:
> > 
> > 
> > sid=form.get("sid","")
> > secret="Abstfgsd"  #可以为空
> > S=Session.Session(req,sid,secret,1800)
> > 
> > if S.is_new() or not form.has_key("sid"):
> >     #新的Session,首次访问或以前的Session超时过期
> >     相应处理
> > else:
> >     S.load()
> >     account=S["account"] #从Session中取出保存的值
> >     sid=S.id()  #Session ID号
> >     S["mykey"]=xxxx  #在Session保存值
> >     S.set_timeout(1800)  #设置Session报废时间秒
> >     S.save()             #保存所有Session值
> > 
> > 我目前唯一的困惑是,如果如何将Session的超时时间在
> > 连续第二次访问之后时间让其顺延,比如:第一设置超时
> > 间设置为30分,5分钟后再访问时,Session的超时时间以
> > 我访问时间再顺延30分钟。由于忙别的时间,一直没有再
> > 试验。
> > 
> > 
> > ----- Original Message ----- 
> > From: "胡兴洋" <hu.007 at 163.com>
> > To: "python-chinese"
> > <python-chinese at lists.python.cn>
> > Sent: Tuesday, April 26, 2005 9:22 PM
> > Subject: [python-chinese]
> mod_python中session的问题
> > 
> > 
> > python-chinese,您好!
> > 
> >
>
哪位大侠能给个session的例子,简单就好。不知道什么原因,我的总失败。在apache里还要设置什么有关session的选项?
> > 
> >
>
环境:freebsd5.4rc3+apache2.0.53+python2.3+mod_python2.1.4
> > 
> > 源码index.psp:
> > --------------------------------------
> > 
> > 
> > <%=session.id()%>
> > 
> > 
> > --------------------------------------
> > 
> > 输出:
> > --------------------------------------
> > Mod_python error: "PythonHandler mod_python.psp"
> > 
> > Traceback (most recent call last):
> > 
> >   File
> >
>
"/usr/local/lib/python2.3/site-packages/mod_python/apache.py",
> > line 299, in HandlerDispatch
> >     result = object(req)
> > 
> >   File
> >
>
"/usr/local/lib/python2.3/site-packages/mod_python/psp.py",
> > line 297, in handler
> >     p.run()
> > 
> >   File
> >
>
"/usr/local/lib/python2.3/site-packages/mod_python/psp.py",
> > line 191, in run
> >     session = Session.Session(req)
> > 
> >   File
> >
>
"/usr/local/lib/python2.3/site-packages/mod_python/Session.py",
> > line 389, in Session
> >     timeout=timeout, lock=lock)
> > 
> >   File
> >
>
"/usr/local/lib/python2.3/site-packages/mod_python/Session.py",
> > line 294, in __init__
> >     timeout=timeout, lock=lock)
> > 
> >   File
> >
>
"/usr/local/lib/python2.3/site-packages/mod_python/Session.py",
> > line 132, in __init__
> >     Cookie.add_cookie(self._req,
> self.make_cookie())
> > 
> >   File
> >
>
"/usr/local/lib/python2.3/site-packages/mod_python/Session.py",
> > line 160, in make_cookie
> >     c.path = dirpath[len(docroot):]
> > 
> > TypeError: unsubscriptable object
> > --------------------------------------
> > 
> >         致
> > 礼!
> >   
> > 
> >         胡兴洋
> >         hu.007 at 163.com
> >           2005-04-26
> > 
> > 
> > 
> >
>
--------------------------------------------------------------------------------
> > 
> > 
> > _______________________________________________
> > python-chinese list
> > python-chinese at lists.python.cn
> > http://python.cn/mailman/listinfo/python-chinese
> > > _______________________________________________
> > python-chinese list
> > python-chinese at lists.python.cn
> > http://python.cn/mailman/listinfo/python-chinese
> > 
> 
>
_________________________________________________________
> Do You Yahoo!?
> 150万曲MP3疯狂搜,带您闯入音乐殿堂
> http://music.yisou.com/
> 美女明星应有尽有,搜遍美图、艳图和酷图
> http://image.yisou.com
> 1G就是1000兆,雅虎电邮自助扩容!
>
http://cn.rd.yahoo.com/mail_cn/tag/1g/*http://cn.mail.yahoo.com/event/mail_1g/
> _______________________________________________
> python-chinese list
> python-chinese at lists.python.cn
> http://python.cn/mailman/listinfo/python-chinese
>  

_________________________________________________________
Do You Yahoo!?
150万曲MP3疯狂搜,带您闯入音乐殿堂
http://music.yisou.com/
美女明星应有尽有,搜遍美图、艳图和酷图
http://image.yisou.com
1G就是1000兆,雅虎电邮自助扩容!
http://cn.rd.yahoo.com/mail_cn/tag/1g/*http://cn.mail.yahoo.com/event/mail_1g/

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2005年04月28日 星期四 18:57

Frank gavin at sz.net.cn
Thu Apr 28 18:57:35 HKT 2005

谢谢!

其实我觉得mod_python作Web开发很不错,不用其它框架。
mod_python中提供了一个模版功能非常不错,避免了python
缩行风格在PSP中带来的弊端。我就是一直用它的模版功能
在开发,只是它的模版功能比较弱。


此外如果用mod_Python开发,最难的是调试,好好利用
traceback能解决该问题。我就是写了下面的函数实现将
错误信息写入Log中实现调试的,非常方便。所有错误信息
就像在解释器中一样显示,在这里我要感谢limodou, 是他
告诉我这个方法!


def formatExceptInfo():
    from traceback import format_exception
    from sys import exc_info
    return  ''.join(format_exception(*exc_info()))


----- Original Message ----- 
From: "Hoxide Ma" <hoxide_dirac at yahoo.com.cn>
To: <python-chinese at lists.python.cn>
Sent: Wednesday, April 27, 2005 9:12 PM
Subject: Re: Re: [python-chinese] mod_python中session的问题


好问题, 不过其实也不是问题,
session在创建对象的时候自动记录了访问时间. 
参考mod_python/session.py:
class BaseSession(dict):

    def __init__(self, req, sid=None, secret=None,
lock=1,
                 timeout=0):

        ...
        self._accessed = time.time()
        ...

最近发现list里面问mod_python的人满多的,
mod_python其实是Python和Apache联系的底层库,
所以是非常原始的,
事实上python最近出现了很多很好的web开发框架,
他们基本上都能以mod_python为基础, 运行在apache上.

我去年暑假用纯mod_python编写了一个文章系统,
有session和upload等一些功能,
其实早就有代码开放了,任何人都可以和我讨论源码,
但是由于我的疏忽, 一直没把它明确得列到woodpecker上,
现在可以到 http://wiki.woodpecker.org.cn/moin/BabyWork
上看详细信息, 并进行讨论, 
--- Frank <gavin at sz.net.cn> wrote:
> 
> Session最常用的几个方法:
> 
> 
> sid=form.get("sid","")
> secret="Abstfgsd"  #可以为空
> S=Session.Session(req,sid,secret,1800)
> 
> if S.is_new() or not form.has_key("sid"):
>     #新的Session,首次访问或以前的Session超时过期
>     相应处理
> else:
>     S.load()
>     account=S["account"] #从Session中取出保存的值
>     sid=S.id()  #Session ID号
>     S["mykey"]=xxxx  #在Session保存值
>     S.set_timeout(1800)  #设置Session报废时间秒
>     S.save()             #保存所有Session值
> 
> 我目前唯一的困惑是,如果如何将Session的超时时间在
> 连续第二次访问之后时间让其顺延,比如:第一设置超时
> 间设置为30分,5分钟后再访问时,Session的超时时间以
> 我访问时间再顺延30分钟。由于忙别的时间,一直没有再
> 试验。
> 
> 
> ----- Original Message ----- 
> From: "胡兴洋" <hu.007 at 163.com>
> To: "python-chinese"
> <python-chinese at lists.python.cn>
> Sent: Tuesday, April 26, 2005 9:22 PM
> Subject: [python-chinese] mod_python中session的问题
> 
> 
> python-chinese,您好!
> 
>
哪位大侠能给个session的例子,简单就好。不知道什么原因,我的总失败。在apache里还要设置什么有关session的选项?
> 
>
环境:freebsd5.4rc3+apache2.0.53+python2.3+mod_python2.1.4
> 
> 源码index.psp:
> --------------------------------------
> 
> 
> <%=session.id()%>
> 
> 
> --------------------------------------
> 
> 输出:
> --------------------------------------
> Mod_python error: "PythonHandler mod_python.psp"
> 
> Traceback (most recent call last):
> 
>   File
>
"/usr/local/lib/python2.3/site-packages/mod_python/apache.py",
> line 299, in HandlerDispatch
>     result = object(req)
> 
>   File
>
"/usr/local/lib/python2.3/site-packages/mod_python/psp.py",
> line 297, in handler
>     p.run()
> 
>   File
>
"/usr/local/lib/python2.3/site-packages/mod_python/psp.py",
> line 191, in run
>     session = Session.Session(req)
> 
>   File
>
"/usr/local/lib/python2.3/site-packages/mod_python/Session.py",
> line 389, in Session
>     timeout=timeout, lock=lock)
> 
>   File
>
"/usr/local/lib/python2.3/site-packages/mod_python/Session.py",
> line 294, in __init__
>     timeout=timeout, lock=lock)
> 
>   File
>
"/usr/local/lib/python2.3/site-packages/mod_python/Session.py",
> line 132, in __init__
>     Cookie.add_cookie(self._req, self.make_cookie())
> 
>   File
>
"/usr/local/lib/python2.3/site-packages/mod_python/Session.py",
> line 160, in make_cookie
>     c.path = dirpath[len(docroot):]
> 
> TypeError: unsubscriptable object
> --------------------------------------
> 
>         致
> 礼!
>   
> 
>         胡兴洋
>         hu.007 at 163.com
>           2005-04-26
> 
> 
> 
>
--------------------------------------------------------------------------------
> 
> 
> _______________________________________________
> python-chinese list
> python-chinese at lists.python.cn
> http://python.cn/mailman/listinfo/python-chinese
> > _______________________________________________
> python-chinese list
> python-chinese at lists.python.cn
> http://python.cn/mailman/listinfo/python-chinese
> 

_________________________________________________________
Do You Yahoo!?
150万曲MP3疯狂搜,带您闯入音乐殿堂
http://music.yisou.com/
美女明星应有尽有,搜遍美图、艳图和酷图
http://image.yisou.com
1G就是1000兆,雅虎电邮自助扩容!
http://cn.rd.yahoo.com/mail_cn/tag/1g/*http://cn.mail.yahoo.com/event/mail_1g/
_______________________________________________
python-chinese list
python-chinese at lists.python.cn
http://python.cn/mailman/listinfo/python-chinese

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2005年04月28日 星期四 22:08

Dreamingk(天成) dreamingk at gmail.com
Thu Apr 28 22:08:16 HKT 2005

收藏!!!

On 4/28/05, Frank <gavin at sz.net.cn> wrote: 
> 
> 谢谢!
> 
> 其实我觉得mod_python作Web开发很不错,不用其它框架。
> mod_python中提供了一个模版功能非常不错,避免了python
> 缩行风格在PSP中带来的弊端。我就是一直用它的模版功能
> 在开发,只是它的模版功能比较弱。
> 
> 此外如果用mod_Python开发,最难的是调试,好好利用
> traceback能解决该问题。我就是写了下面的函数实现将
> 错误信息写入Log中实现调试的,非常方便。所有错误信息
> 就像在解释器中一样显示,在这里我要感谢limodou, 是他
> 告诉我这个方法!
> 
> def formatExceptInfo():
> from traceback import format_exception
> from sys import exc_info
> return ''.join(format_exception(*exc_info()))
> 
> 
> ----- Original Message -----
> From: "Hoxide Ma" <hoxide_dirac at yahoo.com.cn>
> To: <python-chinese at lists.python.cn>
> Sent: Wednesday, April 27, 2005 9:12 PM
> Subject: Re: Re: [python-chinese] mod_python中session的问题
> 
> 好问题, 不过其实也不是问题,
> session在创建对象的时候自动记录了访问时间.
> 参考mod_python/session.py:
> class BaseSession(dict):
> 
> def __init__(self, req, sid=None, secret=None,
> lock=1,
> timeout=0):
> 
> ...
> self._accessed = time.time()
> ...
> 
> 最近发现list里面问mod_python的人满多的,
> mod_python其实是Python和Apache联系的底层库,
> 所以是非常原始的,
> 事实上python最近出现了很多很好的web开发框架,
> 他们基本上都能以mod_python为基础, 运行在apache上.
> 
> 我去年暑假用纯mod_python编写了一个文章系统,
> 有session和upload等一些功能,
> 其实早就有代码开放了,任何人都可以和我讨论源码,
> 但是由于我的疏忽, 一直没把它明确得列到woodpecker上,
> 现在可以到 http://wiki.woodpecker.org.cn/moin/BabyWork
> 上看详细信息, 并进行讨论,
> --- Frank <gavin at sz.net.cn> wrote:
> >
> > Session最常用的几个方法:
> >
> >
> > sid=form.get("sid","")
> > secret="Abstfgsd" #可以为空
> > S=Session.Session(req,sid,secret,1800)
> >
> > if S.is_new() or not form.has_key("sid"):
> > #新的Session,首次访问或以前的Session超时过期
> > 相应处理
> > else:
> > S.load()
> > account=S["account"] #从Session中取出保存的值
> > sid=S.id() #Session ID号
> > S["mykey"]=xxxx #在Session保存值
> > S.set_timeout(1800) #设置Session报废时间秒
> > S.save() #保存所有Session值
> >
> > 我目前唯一的困惑是,如果如何将Session的超时时间在
> > 连续第二次访问之后时间让其顺延,比如:第一设置超时
> > 间设置为30分,5分钟后再访问时,Session的超时时间以
> > 我访问时间再顺延30分钟。由于忙别的时间,一直没有再
> > 试验。
> >
> >
> > ----- Original Message -----
> > From: "胡兴洋" <hu.007 at 163.com>
> > To: "python-chinese"
> > <python-chinese at lists.python.cn>
> > Sent: Tuesday, April 26, 2005 9:22 PM
> > Subject: [python-chinese] mod_python中session的问题
> >
> >
> > python-chinese,您好!
> >
> >
> 哪位大侠能给个session的例子,简单就好。不知道什么原因,我的总失败。在apache里还要设置什么有关session的选项?
> >
> >
> 环境:freebsd5.4rc3+apache2.0.53+python2.3+mod_python2.1.4
> >
> > 源码index.psp:
> > --------------------------------------
> > 
> > 
> > <%=session.id()%>
> > 
> > 
> > --------------------------------------
> >
> > 输出:
> > --------------------------------------
> > Mod_python error: "PythonHandler mod_python.psp"
> >
> > Traceback (most recent call last):
> >
> > File
> >
> "/usr/local/lib/python2.3/site-packages/mod_python/apache.py",
> > line 299, in HandlerDispatch
> > result = object(req)
> >
> > File
> >
> "/usr/local/lib/python2.3/site-packages/mod_python/psp.py",
> > line 297, in handler
> > p.run()
> >
> > File
> >
> "/usr/local/lib/python2.3/site-packages/mod_python/psp.py",
> > line 191, in run
> > session = Session.Session(req)
> >
> > File
> >
> "/usr/local/lib/python2.3/site-packages/mod_python/Session.py",
> > line 389, in Session
> > timeout=timeout, lock=lock)
> >
> > File
> >
> "/usr/local/lib/python2.3/site-packages/mod_python/Session.py",
> > line 294, in __init__
> > timeout=timeout, lock=lock)
> >
> > File
> >
> "/usr/local/lib/python2.3/site-packages/mod_python/Session.py",
> > line 132, in __init__
> > Cookie.add_cookie(self._req, self.make_cookie())
> >
> > File
> >
> "/usr/local/lib/python2.3/site-packages/mod_python/Session.py",
> > line 160, in make_cookie
> > c.path = dirpath[len(docroot):]
> >
> > TypeError: unsubscriptable object
> > --------------------------------------
> >
> > 致
> > 礼!
> >
> >
> > 胡兴洋
> > hu.007 at 163.com
> > 2005-04-26
> >
> >
> >
> >
> 
> --------------------------------------------------------------------------------
> >
> >
> > _______________________________________________
> > python-chinese list
> > python-chinese at lists.python.cn
> > http://python.cn/mailman/listinfo/python-chinese
> > > _______________________________________________
> > python-chinese list
> > python-chinese at lists.python.cn
> > http://python.cn/mailman/listinfo/python-chinese
> >
> 
> _________________________________________________________
> Do You Yahoo!?
> 150万曲MP3疯狂搜,带您闯入音乐殿堂
> http://music.yisou.com/
> 美女明星应有尽有,搜遍美图、艳图和酷图
> http://image.yisou.com
> 1G就是1000兆,雅虎电邮自助扩容!
> 
> http://cn.rd.yahoo.com/mail_cn/tag/1g/*http://cn.mail.yahoo.com/event/mail_1g/
> _______________________________________________
> python-chinese list
> python-chinese at lists.python.cn
> http://python.cn/mailman/listinfo/python-chinese
> 
> _______________________________________________
> python-chinese list
> python-chinese at lists.python.cn
> http://python.cn/mailman/listinfo/python-chinese
> 
> 
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.exoweb.net/pipermail/python-chinese/attachments/20050428/8d7e8223/attachment.htm

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

如下红色区域有误,请重新填写。

    你的回复:

    请 登录 后回复。还没有在Zeuux哲思注册吗?现在 注册 !

    Zeuux © 2025

    京ICP备05028076号