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网页解析利器BeautifulSoup安装使用介绍

Python网页解析利器BeautifulSoup安装使用介绍

python解析网页,无出BeautifulSoup左右,此是序言 安装 BeautifulSoup4以后的安装需要用eazy_install,如果不需要最新的功能,安装版本3就够了,千...

python获取本机mac地址和ip地址的方法

本文实例讲述了python获取本机mac地址和ip地址的方法。分享给大家供大家参考。具体如下: import sys, socket def getipaddrs(hostname)...

python实现远程控制电脑

python远程控制电脑的具体代码,供大家参考,具体内容如下 python拥有大量的第三方库,且语法简单。今天老杨就用python实现远程控制电脑 所谓,谋定而后动,在实现任何一个需求之...

Python log模块logging记录打印用法解析

这篇文章主要介绍了Python log模块logging记录打印用法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 日志基础教程...

python使用PyCharm进行远程开发和调试

python使用PyCharm进行远程开发和调试

背景描述 有时候Python应用的代码在本地开发环境运行十分正常,但是放到线上以后却出现了莫名其妙的异常,经过再三排查以后还是找不到问题原因,于是就在想,要是可以在服务器环境中进行单步跟...