Falcon 手记

Falcon

Python Web 框架。

主打速度、简单。

安装

如果不是在 pypy 环境下,最好先安装 cython 来加速。

pip install --upgrade cython falcon

如果是在 os x 环境下记得要设置编译参数。(很多东西的编译都需要这样设置,这是应为 clang 和 gcc 对于参数的处理差异产生的)

export CFLAGS=-Qunused-arguments
export CPPFLAGS=-Qunused-arguments

容器使用 gevent + gunicorn|uwsgi 的组合更能发挥最佳效能。

路由

falcon 使用方法命名的约定来做路由配置,

任何一个类,只实现了 on_get 方法,那么绑定路由到这个类,使用 GET 方法请求,就会被路由到 on_get 方法中进行处理。

钩子

与其他 Python wsgi 标准实现的框架一样, falcon 也是利用中间件思想来对整个系统进行解耦的。

在 falcon 中提供了两个钩子修饰器可以方便的对请求处理,

请求前
falcon.before
请求后
falcon.after

其他

faclon 对 req resp 也做了一些包装,还提供了一些辅助的方法,这些都是为了给开发者提供更大的便利。

总结

如果 flask 给自己的定位是 micro 框架,那么 faclon 就可以说是 micro micro 框架,除了最核心的路由控制进行比较个性的实现以外,再没有提供其他的东西了,也没有想 flask 那样的自由的组件机制,为其他东西留出位置。

总之,处理的绝对速度是很快的,但是其他的东西太简陋了,用来做 http 接口是合适的,用来做比较完善的网站应用来说就很不够用了。

但是话说回来,如果要做 http 接口,对比 openresty 也就没有任何优势了。

所以说 faclon 没什么用。