让python cookie支持特殊字符

先对cookie做下简单的介绍

cookie的作用:

tcp协议能够通过三次握手建立连接,client发送的多次请求能够通过句柄维护同一个连接。可是http协议是一种无状态的协议,对于浏览器发送的多次请求。server是无法区分是不是同一个浏览器发送的。这样就须要使用额外的数据维护会话。

服务端收到浏览器的请求。在响应的时候能够种cookie。这样client与服务端能够将cookie来回传递,从而维护一个session状态

cookie有2个必备的属性。那就是name。value,另外还有几个可选的属性,分别控制cookie的生存周期(expires),可见性及安全性(secure)。

废话半天,进入正题:

依照cookie的标准,一些特殊字符是不同意写入cookie的,可是有时候我们的开发者非常可爱。比方说,前段时间我就遇到一个,前端为了现有username信息,将邮箱直接写入cookie,后台在取其它cookie的时候。就会抛出异常。

为此查看了python的源代码,重写了Cookie.Morsel模块。

以下是代码实现,在使用的时候由import cookie.py 代替import Cookie。以下是cookie.py代码:

#!/usr/bin/python
#-*- coding: utf-8-*-
#TODO:该模块重构Cookie.Morsel使得get_cookie支持@,:等特殊字符import Cookie
import string_Morsel =Cookie.Morsellegal_char =string.ascii_letters + string.digits +"!#$%&'*+-.^_`|~"+"@"class MorselHook(_Morsel):def set(self, key, val, coded_val,LegalChars=Cookie._LegalChars+legal_char, idmap=string._idmap,translate=string.translate):return super(MorselHook, self).set(key,val, coded_val, LegalChars, idmap, translate)Cookie.Morsel =MorselHook

转载于:https://www.cnblogs.com/yfceshi/p/6911319.html

让python cookie支持特殊字符相关推荐

  1. python不支持字符类型、单个字符也作为字符串使用_Python 字符串

    Python 字符串 字符串是 Python 中最常用的数据类型.我们可以使用引号来创建字符串. 创建字符串很简单,只要为变量分配一个值即可.例如: var1 = 'Hello World!' var ...

  2. python不支持单字符类型_Python数据类型之字符串

    1. Python字符串的创建 字符串是Python中最常见的数据类型,通常使用单引号或双引号来定义一个字符串,如下: str = "我是字符串" str1 = '我也是字符串' ...

  3. cpp-netlib笔记三-Cookie支持测试

    Title:cpp-netlib笔记三-Cookie支持测试 Author:Kagula Date:2017-06-02 Environment: [1]Boost 1.64 本机安装目录 D:\SD ...

  4. ClewareControl 2.4 发布,传感器控制程序,增加对 python 的支持

    为什么80%的码农都做不了架构师?>>>    ClewareControl 2.4 增加对 python 的支持,可轻松开发使用该接口的相关应用. Clewarecontrol 可 ...

  5. Supporting Python 3(支持python3)——常见的迁移问题

    2019独角兽企业重金招聘Python工程师标准>>> 常见的迁移问题 如果你按照该建议来确保你的代码使用Python 2.7 - 3来运行没有警告,一些现在会遇到的简单错误都是可以 ...

  6. python不支持以下哪种数据类型_Python 不支持以下哪种数据类型?

    Python 不支持以下哪种数据类型? 答:char 中国大学MOOC: 为了充分利用学习时间,下列方法可行的是: 答:尽量选择理想的固定场所学习\n充分利用等候和其它碎片时间\n把握一天中的最佳状态 ...

  7. python显示无效语法怎么处理-Python不支持 i ++ 语法的原因解析

    简要讨论为什么它不提供++作为运算符 正常情况下,当有人问起++原因而不是Python中的运算符时,这一行引起了我的注意. 如果您想知道最初的原因,则必须翻阅旧的Python邮件列表,或询问那里的某个 ...

  8. anaconda新建python2环境安装不了jupyterlab_Anaconda 5.0.0 JupyterLab 0.27.0 中配置多Python环境支持...

    Anaconda 5.0.0 JupyterLab 0.27.0 中配置多Python环境支持 概述 Anaconda 5.0.0 中自带了 JupyterLab 0.27.0 版本,这是 Anaco ...

  9. 下列数据类型中python不支持的是_ 下列选项中 ,Python 不支持的数据类型有 ( ) 。_学小易找答案...

    [单选题] 下列标识符中 , 合法的是 ( ) . [简答题]说明轴承代号7204AC表达的含义. [判断题]type() 函数可以查看变量的数据类型. ( ) [名词解释]限界 [单选题]体育教学 ...

最新文章

  1. mysql系列十、mysql索引结构的实现B+树/B-树原理
  2. 【C 语言】内存四区原理 ( 栈内存属性增长方向 | 栈内存开口方向 | 代码示例 )
  3. 应用编排与管理:Job DaemonSet
  4. SAP Spartacus TypeScript源代码中的三个点用法
  5. shiro 的 @RequiresPermissions 注解使用
  6. java integer 不变模式_《JAVA与模式》之不变模式
  7. DBnet检测知识蒸馏+tensorrt推理(文字检测+条形码检测)
  8. mysql 索引优化分析
  9. 微信小程序图片全屏显示
  10. 计算机专业关于Java读书笔记_《Java8学习笔记》读书笔记(四)
  11. 通过动态NAT实现内网访问外网,通过静态NAT实现外网访问内网的WEB服务器
  12. BJFU_数据结构习题_256病毒感染监测
  13. android dialog设置背景图片,如何为Dialog设置背景图片?
  14. 沐阳Git笔记01新建仓库、配置local用户信息
  15. js百度地图获取当前定位经纬度及省市区
  16. 浆轮机器人:游泳池漂浮碎屑的清理大师
  17. 《布尔教育php设计模式教程 共17课 》完整版
  18. ffmpeg视频播放过程
  19. [予纯 · 星火 - 1] 女生用品与物理化学
  20. 01比特串异或 python_异或

热门文章

  1. 用 JavaScript 和 C3 实现一个转盘小游戏
  2. 水下机器人ROV亚克力密封舱漏水的可能性及解决方案
  3. 深入URP之Shader篇5: SimpleLit Shader分析(1)
  4. 河北省加快新型建筑工业化发展
  5. 2021 OceanBase 开源半年度报告 | 不忘初心,感恩同行
  6. 蓝湖导出android代码,【蓝湖指北】用好蓝湖,提升开发效率
  7. 门控神经网络:LSTM 和 GRU 简要说明
  8. 微信公众号开发接口语音下载解决方案
  9. 使用POI在ppt中加入内嵌excel
  10. 镁光DDR芯片型号与标签对应关系查询方法