web开发 Django开发交流群:19525555 注册 | 登陆

Mod_python Session 例子

先看看文档的东西:

is_new()
如果返回1,则对话是刚刚创建的。在发生超时或不存在的sid时,也会新创建一个对话

id()
返回对话ID
created()
返回对话的创建时间,按照从新纪元(epoch)开始的秒数。
last_accessed()
返回上次存取时间,按照从新纪元开始的秒数。
timeout()
返回以秒为单位的超时间隔(timeout interval)。
set_timeout(secs)
设置超时时间为secs秒。
invalidate()
删除对话,并发送响应头要求删除客户端的对话相关cookie。
load()
从存储装入对话的值。
save()
将对话值写入存储。
delete()
从存储中删除对话。
init_lock()
初始化对话锁。无需每次都调用这个方法,仅在子类打算(intend)使用互斥锁(alternative lock)时使用。
lock()
锁住对话。如果对话已经被其他线程/进程锁住,则等待到锁被释放(release)时。锁是被自动控制的,而无需调用这个方法,缺省。这个方法也注册一个清理行为,在请求处理结束时解锁一个对话。
unlock()
解锁对话。同lock()当自动处理时(缺省),无需手工调用。
cleanup()
这个方法供子类实现对话的存储清理机制(比如删除超时对话等)。它将会被随机调用,调用的机会由CLEANUP_CHANGE变量,一个Session模 块的成员来控制,缺省值为1000。这意味着被安排好(be ordered)的随机清理行为发生概率在1/1000的机会(chance)。子类实现这个方法之后,将不会按照时间强制的清理,但将会需要用 req.register_cleanup注册清理行为来代替,执行请求之后的处理。

Python代码
  1. from mod_python import Session  
  2.   
  3. def handler(req)  
  4.     session=Session.Session(req)  
  5.     session['user'] = 'admin'  
  6.     session.save()  
  7.     req.write('user:%s' %session['user'])  
上面代码比较简单,只是储存了一个用户名称.然后打印出来.更多的应用可以参考文档.

要说明一下的是: 如果 session['user'] 不存在,而你又直接引用了,就会出错

所以在使用 session['user'] 之前先这样:

Python代码
  1. if session.has_key('user'):
  2.       req.write('user:%s' %session['user'])

Tags: session, python

« 上一篇 | 下一篇 »

只显示10条记录相关文章

读取xml转换成字典 (浏览: 605, 评论: 3)
命令行下的Python进度条 (浏览: 998, 评论: 1)
Python 获取当前文件的路径 (浏览: 1206, 评论: 3)
Python 日期与时间戳互转 (浏览: 1550, 评论: 1)
Python错误:too many values to unpack (浏览: 1154, 评论: 0)
Python 检测变量是否被定义 (浏览: 965, 评论: 2)
python 时间计算例子 (浏览: 1103, 评论: 0)
python连接MySQL (浏览: 841, 评论: 0)

Trackbacks

点击获得Trackback地址,Encode: UTF-8

发表评论

评论内容 (必填):