Pyramid添加Middleware的方法实例

yipeiwu_com6年前Python基础

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

相关文章

Python生成pdf文件的方法

本文实例演示了Python生成pdf文件的方法,是比较实用的功能,主要包含2个文件。具体实现方法如下: pdf.py文件如下: #!/usr/bin/python from repo...

Python 随机生成中文验证码的实例代码

python代码复制代码 代码如下: # -*- coding: utf-8 -*-  import Image,ImageDraw,ImageFont &nbs...

深入理解python中的atexit模块

atexit 模块介绍 python atexit 模块定义了一个 register 函数,用于在 python 解释器中注册一个退出函数,这个函数在解释器正常终止时自动执行,一般用来...

python3使用pandas获取股票数据的方法

python3使用pandas获取股票数据的方法

如下所示: from pandas_datareader import data, wb from datetime import datetime import matplotli...

python解析含有重复key的json方法

python自带的json包能够方便的解析json文本,但是如果json文本中包含重复key的时候,解析的结果就是错误的。如下为例 {"key":"1", "key":"2", "...