首先看 glance-0.1.7/glance/common 目录下的代码,因为一般 common 下的代码对 glance 中其他
部分依赖较少,是作为基础组件来设置的,其他模块会用到这里提供的基础功能。
首先看 wsgi.py。该文件的主要功能是通过借助 eventlet、routes 和 webob 来实现的:
eventlet 支持非阻塞IO;Python 社区里面大家比较推荐的高效框架,类似的还有 tornado 之类的http://eventlet.net/
routes 类似 Rails 中的 URL 映射的 Python 实现,用于在应用功能和 URL 之间建立映射关系http://routes.readthedocs.org/en/latest/
webob 用于给 WSGI 请求和响应对象加上封装,避免了使用上的复杂性http://www.webob.org/
自己对这几个库都不熟悉,只是通过主页的介绍简单了解它们的角色。wsgi.py 就是通过这些库做实际
的工作,自己则简单封装,对外提供 WSGI 接口。
wsgi.py 中并不是单纯实现 WSGI 接口,这个已经可以由这几个库来支撑了。wsgi.py 中主要定义了几
个类,主要是通过封装来为 glance 提供 WSGI 环境:
class Server(object)class Middleware(Application)
class Debug(Middleware)
class Router(object)
class Controller(object)
class Serializer(object)
现在具体也不知道这些类有什么用处,等后面遇到的时候在看看实际的应用场合。