让python的Cookie.py模块支持冒号做key的方法
让python的Cookie.py模块支持冒号做key的方法
发布时间:2016-12-28 来源:查字典编辑
摘要:为了做好兼容性,只能选择兼容:冒号。很简单,修改一下Cookie.Morsel复制代码代码如下:#!/usr/bin/python#-*-c...

为了做好兼容性,只能选择兼容:冒号。

很简单,修改一下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学习
热门python学习
脚本专栏子分类