当前位置 博文首页 > Pyramid添加Middleware的方法实例

    Pyramid添加Middleware的方法实例

    作者:admin 时间:2021-02-20 06:04

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

    js