Bottle 对 HTTP 请求的处理

发布时间:2012-07-01 10:09:36, 关注:+6788, 赞美:+5, 不爽:+5

最近玩Bottle这个框架, 分析了一下它的源码, 顺便也理一下它是怎么处理HTTP请求的.

代码结构

我们先分析下bottle.py的代码结构. 这个单文件的框架有2900多行, 大致结构如下(手头的版本是0.10.7):

  1. 0000-0140: 模块载入, 兼容性调整
  2. 0140-0200: 逻辑无关的工具函数和工具类定义
  3. 0200-0240: 异常定义. 需要注意的是, 不需要消息体的HTTP响应, 例如HTTP重定向之类, 在bottle中也被处理成一种异常.
  4. 0240-0520: URL映射相关逻辑, 包括若干个路由异常的定义.
  5. 0520:0860: 主Bottle类的定义.
  6. 0860-1440: 装HTTP请求和响应的类的定义. 微型框架啥都可以省省, 但是这个如果再省, 就不能被称为是框架了.
  7. 1440-1570: 各种插件.
  8. 1570-1800: 各种数据结构.
  9. 1800-2050: 乱七八糟的小函数.
  10. 2050-2280: 框架虽小, 兼容的服务器倒真不少...
  11. 2280-2450: 应用控制, 也挺乱的, 两个用来载入app, 一个起server, 还有一个用来自动重启server(这个都有啊喂, 你真是微型框架咩).
  12. 2450-2830: 模板渲染及处理, 兼容的模板系统也不少.
  13. 2830-EOF : 变量定义及一些实例化, 以及起内置服务器的main函数.

由于有实例化的部分, 我们得先看看这段. 一旦你要从bottle.py中引入一个名字到你自己的模块, 这些代码就得执行一遍. 除了那些对变量的定义外, 这一段做了下面几件事情:

详细阅读:http://blog.xiaket.org/2012/bottle-source-analysis.html

如果你觉得本站对你有帮助,欢迎向本站赞助 :P

使用支付宝捐赠

Copyright© Python4cn(news, jobs) simple-is-better.com, 技术驱动:powered by web.py 空间主机:Webfaction

版权申明:文章转载已注明出处,如有疑问请来信咨询。本站为 python 语言推广公益网站,与 python 官方没有任何关系。

联系/投搞/留言: en.simple.is.better@gmail.com 向本站捐赠