让python的Cookie.py模块支持:冒号做key
2010-11-19 15:54
465 查看
虽然Cookie的标准是不允许:冒号出现在key里面的,但是我们的开发人员是很可爱的,常常会让我们意想不到。
为了做好兼容性,只能选择兼容:冒号。
很简单,修改一下Cookie.Morsel
为了做好兼容性,只能选择兼容:冒号。
很简单,修改一下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的Cookie.py模块支持冒号做key的方法
- 让python的Cookie.py模块支持冒号做key的方法
- Python模块包中__init__.py文件的作用
- python urllib2模块携带cookie
- [py]logutils 给人用的日志记录模块-支持json格式
- MicroPython 1.8.6重新支持512K的模块
- 对原来的模块修改后,最好在解释器里把修改好的代码重新写再粘贴到py文件里,否则F5运行py模块时,总是出错误,如缩进不对 如for语句没写冒号 就导致cmd sdist和install 出错
- PYTHON模块之PY2EXE
- Python模块包中__init__.py文件功能分析
- python小模块----cookie
- 解决多个py模块调用同一个python的logging模块,打印日志冲突问题
- Python模块包中__init__.py文件的作用
- python_fullstack数据库(七)-Python连接MySQL数据库之pymysql模块使用
- python多个模块py文件的数据共享
- Python模块包中__init__.py文件的作用
- (原创)Python文件与文件系统系列(2)——os模块对文件、文件系统操作的支持
- python中http请求中添加cookie支持
- python中http请求中添加cookie支持
- Learning Python(5)--Python模块包中__init__.py的作用
- python 3.x 不再支持MySQLdb 模块