在pylons的文档中,有专门讲过如何添加自己的Middleware, 通过这些Middleware, 我们可以改变输入和输出。这也是WSGI(Web Server Gateway Interface)的优势和精髓所在。
那么在pyramid中,我们如何添加Middleware呢?
假设我们要添加一个我们自己的Middleware, 用来记录每次请求的日志
下面就是一个符合规范的Middleware, 构造函数中接受一个WSGI APP, __call__返回一个WSGI APP.
class LoggerMiddleware(object): '''WSGI middleware''' def __init__(self, application): self.app = application def __call__(self, environ, start_response): # write logs try: return self.app(environ, start_response) except Exception, e: # write logs pass finally: # write logs pass
在项目的__init__.py的main函数中, 在config.make_wsgi_app上包上一层我们的Middleware:
from pyramid.config import Configurator config = Configurator() config.scan() app = config.make_wsgi_app() # Put middleware app = LoggerMiddleware(app) serve(app, host='0.0.0.0')
如果,您认为阅读这篇博客让您有些收获,不妨点击一下右下角的【推荐】按钮。
如果,您希望更容易地发现我的新博客,不妨点击一下右下角的【关注 Justrun】。
因为,我的写作热情也离不开您的肯定支持。
感谢您的阅读,这里还有你可能感兴趣的文章推荐博客文章。
本文基于署名 2.5 中国大陆许可协议发布,欢迎转载,演绎或用于商业目的,但是必须保留本文的署名justrun(包含链接)。
本文转自JustRun博客园博客,原文链接:http://www.cnblogs.com/JustRun1983/archive/2012/07/22/2603781.html,如需转载请自行联系原作者