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