04 2016 档案
摘要:BaseRequest 是一个基类,对底层的environ进一步包装,实例对象是一个只读的对象,所以说不可变 构造方法接受 environ ,当shallow为 False 时,在 environ 中创建 request 键并将 self 传入进去。 这里 方法允许子类调用该方法,生成一个接收 re
阅读全文
摘要:routing 模块是 url 的路由系统。主要分为三个类: Rule 类,创建URL规则; MAP 放置一个由URL组成的列表; MapAdapter ,如果 map 实例调用 bind 方法,会返回一个 MapAdapter 实例,这个实例可以利用map的方法,找到对应 url 的视图函数,返回
阅读全文
摘要:utils 是一个工具模块,很多方法都用在 response 和 request 模块中。当设计中间件的时候也需要调用某些方法。 第一个类,是一个自定义的 描述符 类,重构了 property 方法,用法相当于@property,可以参考 "geek范" 描述的 __get__ 方法,如果是属性取得
阅读全文
摘要:HTTP模块是对http数据进行加工或者判断,包括解析请求和对响应的包装。 模块中对http中各元素的处理都差不多,下面用 etag 举说明: 在服务端和客户端的交互通信中,有一个最重要的概念就是缓存(cache)。它的作用是将请求频繁的内容从服务端取出,copy在一个客户端和服务端中间的位置处,以
阅读全文
摘要:简要的分析一下一个GET方法的正常请求,到生成一个正常的responce响应信息的过程。以python中标准模块BaseHTTPServer模块为例,以下是代码: 程序运行后,首先建立一个 服务器,将服务器地址和请求处理的类绑定到服务器,这里的初始化绑定方式代码如下: 上述类的继承关系是: Base
阅读全文
摘要:上一篇WSGI中主要分析 的代码,在接下来的 wsgi 源码中有多个功能类似的函数,作用都是接受一个 environ 环境变量的值,提取字典中的 value 。 现在主要理解 ShareDataMiddlewar 这个中间件。 首先调用一下它,究竟在作什么,引用 werkzeug 中官方源码的例子,
阅读全文
摘要:上一篇文章主要讨论了字符编码的不同方式,这一篇文章着重谈谈对python的编码解码的理解。 python2 在python2中主要有两种类型的字符类型,一个是 ,一个是 。平时我们默认操作的字符串类型是 ,在字符串前面加一个 u 就是Unicode类型。 这两个类型有相应的工厂方法:str()和un
阅读全文
摘要:最近看werkzeug,代码涉及到很多编码格式的转换问题,由于对一些主流的编码格式不是太懂,特意花时间仔细的看了看。 ASCII ASCII 是计算机刚刚实现的60年代,由美国ANSI标准协会制订的,通过8位表示的字符集。最初只用前128个数值表示字符,最高位为0;后来为了收录更多的字符,就将128
阅读全文
浙公网安备 33010602011771号