欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Pyramid添加Middleware的方法实例

程序员文章站 2022-05-12 13:37:50
假设我们要添加一个我们自己的middleware,用来记录每次请求的日志下面就是一个符合规范的middleware, 构造函数中接受一个wsgi app, __call__...

假设我们要添加一个我们自己的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')