Pyramid添加Middleware的方法实例

yipeiwu_com7年前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中threading模块的几个常用方法

threading.Thread Thread 是threading模块中最重要的类之一,可以使用它来创建线程。有两种方式来创建线程:一种是通过继承Thread类,重写它的run方法;另...

Python中的面向对象编程详解(上)

创建类 Python 类使用 class 关键字来创建。简单的类的声明可以是关键字后紧跟类名: 复制代码 代码如下: class ClassName(bases):  &nbs...

Python时间序列缺失值的处理方法(日期缺失填充)

前言 因近期进行时间序列分析时遇到了数据预处理中的缺失值处理问题,其中日期缺失和填充在网上没有找到较好较全资料,耗费了我一晚上工作时间,所以下面我对这次时间序列缺失值处理学习做了以下小...

Python+Pandas 获取数据库并加入DataFrame的实例

实例如下所示: import pandas as pd import sys import imp imp.reload(sys) from sqlalchemy import cr...

python调用matlab的m自定义函数方法

项目信号处理和提取部分用到了matlab,需要应用到工程中方便研究。用具有万能粘合剂之称的“Python”。具体方法如下: 1.python中安装mlab 下载https://pypi...