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

yipeiwu_com6年前Python基础
为了做好兼容性,只能选择兼容:冒号。

很简单,修改一下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下调用pytesseract识别某网站验证码的实现方法

一、pytesseract介绍 1、pytesseract说明 pytesseract最新版本0.1.6,网址:https://pypi.python.org/pypi/pytesser...

Python设计模式之迭代器模式原理与用法实例分析

Python设计模式之迭代器模式原理与用法实例分析

本文实例讲述了Python设计模式之迭代器模式原理与用法。分享给大家供大家参考,具体如下: 迭代器模式(Iterator Pattern):提供方法顺序访问一个聚合对象中各元素,而又不暴...

Python读写/追加excel文件Demo分享

三个工具包 python操作excel的三个工具包如下,注意,只能操作.xls,不能操作.xlsx。 • xlrd: 对excel进行读相关操作 • xlwt:...

在django中图片上传的格式校验及大小方法

如下所示: Uploadfiles = request.FILES.get('参数', '') for i in Uploadfiles : # 图片大小的属性 i...

PyQt5实现类似别踩白块游戏

本文实例为大家分享了PyQt5实现类似别踩白块游戏的具体代码,供大家参考,具体内容如下 #引入可能用到的库 from PyQt5.QtWidgets import (QWidget...