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

yipeiwu_com7年前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()

相关文章

详解如何在Apache中运行Python WSGI应用

在生产环境上,一般会使用比较健壮的Web服务器,如Apache来运行我们的应用。如果我们的Web应用是采用Python开发,而且符合WSGI规范,比如基于Django,Flask等框架,...

使用Python横向合并excel文件的实例

使用Python横向合并excel文件的实例

起因: 有一批数据需要每个月进行分析,数据存储在excel中,行标题一致,需要横向合并进行分析。 数据示意: 具有多个 代码: # -*- coding: utf-8 -*- "...

Python使用字典的嵌套功能详解

当需要存储很多同类型的不通过数据时可能需要使用到嵌套,先用一个例子说明嵌套的使用 1、在列表中存储字典 #假设年级里有一群国际化的学生,有黄皮肤的中国人、有白皮肤的美国人也有黑皮肤的...

对python实现模板生成脚本的方法详解

最近项目需要,针对主项目提取一个小的基础版本,供于在新建项目时使用,所以就有这个python模板生成脚本,其作用如下: 1、通过配置文件来控制模板中的数据、格式化的过滤条件 2、执行后会...

Centos7 Python3下安装scrapy的详细步骤

Centos7 Python3下安装scrapy的详细步骤

苦逼的前夜 昨晚很辛苦,搞到晚上快两点,最后还是没有把python3下的scrapy框架安装起来,后面还把yum这玩意给弄坏了,一直找不到命令。今天早上又自己弄了快一上午,又求助@函兮,...