让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的Collections模块中counter结构的用法

counter 是一种特殊的字典,主要方便用来计数,key 是要计数的 item,value 保存的是个数。 from collections import Counter >...

python+Django实现防止SQL注入的办法

先看看那种容易被注入的SQL id = 11001 sql = """ SELECT id, name, age FRO...

Python中如何优雅的合并两个字典(dict)方法示例

前言 字典是Python中最强大的数据类型之一,本文将给大家详细介绍关于Python合并两个字典(dict)的相关内容,分享出来供大家参考学习,话不多说了,来一起看看详细的介绍吧。 一行...

详解python实现小波变换的一个简单例子

详解python实现小波变换的一个简单例子

最近工作需要,看了一下小波变换方面的东西,用python实现了一个简单的小波变换类,将来可以用在工作中。 简单说几句原理,小波变换类似于傅里叶变换,都是把函数用一组正交基函数展开,选取不...

Python面向对象编程基础实例分析

本文实例讲述了Python面向对象编程基础。分享给大家供大家参考,具体如下: 1、类的定义 Python中类的定义与对象的初始化如下,python中所有类的父类是object,需要继承。...