脚本专栏 
首页 > 脚本专栏 > 浏览文章

让python的Cookie.py模块支持冒号做key的方法

(编辑:jimmy 日期: 2024/11/17 浏览:3 次 )
为了做好兼容性,只能选择兼容:冒号。

很简单,修改一下Cookie.Morsel
复制代码 代码如下:
#!/usr/bin/python
# -*- coding: utf-8 -*-
"""MorselHook, fix Cookie.CookieError: Illegal key value: ys-tab:entrance:e
"""

import Cookie
import string

_Morsel = Cookie.Morsel

class MorselHook(_Morsel):
"""
> import inspect
> (inspect.getargspec(MorselHook.set)[3])[0]
"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!#$%&'*+-.^_`|~:"
> cookie = Cookie.SimpleCookie()
> cookie.load("ys-tab:entrance:e=abc; webpy_session_id=75eb60dcc83e2d902146af0bb7f47afe61fbd2b2")
> print cookie
Set-Cookie: webpy_session_id=75eb60dcc83e2d902146af0bb7f47afe61fbd2b2;
Set-Cookie: ys-tab:entrance:e=abc;
"""
def set(self, key, val, coded_val, LegalChars=Cookie._LegalChars+':', idmap=string._idmap, translate=string.translate):
return super(MorselHook, self).set(key, val, coded_val, LegalChars, idmap, translate)

Cookie.Morsel = MorselHook

# 在你需要使用到Cookie的地方先让上面的代码执行一遍


if __name__ == '__main__':
import doctest
doctest.testmod()
上一篇:Python+Django在windows下的开发环境配置图解
下一篇:Python 开发Activex组件方法
一句话新闻
Windows上运行安卓你用过了吗
在去年的5月23日,借助Intel Bridge Technology以及Intel Celadon两项技术的驱动,Intel为PC用户带来了Android On Windows(AOW)平台,并携手国内软件公司腾讯共同推出了腾讯应用宝电脑版,将Windows与安卓两大生态进行了融合,PC的使用体验随即被带入到了一个全新的阶段。