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如何给字典的键对应的值为字典项的字典赋值

问题 1:需要得到一个类似{“demo”:{“key”:”value”}}这样格式的字典dic。 dic = dict() dic_temp = dict() dic_temp =...

python3.5 tkinter实现页面跳转

python3.5 tkinter实现页面跳转

本文实例为大家分享了tkinter实现页面跳转的具体代码,供大家参考,具体内容如下 主函数main.py from tkinter import * from LoginPag...

举例讲解Python中字典的合并值相加与异或对比

字典合并值相加 在统计汇总游戏数据的时候,有些数据是是每天用字典存的,当我要对多天汇总的时候,就需要合并字典了。 如果key相同的话它们的值就相加。 不能用update方法,因为用upd...

python队列queue模块详解

队列queue 多应用在多线程应用中,多线程访问共享变量。对于多线程而言,访问共享变量时,队列queue是线程安全的。从queue队列的具体实现中,可以看出queue使用了1个线程互斥锁...

基于python的七种经典排序算法(推荐)

基于python的七种经典排序算法(推荐)

一、排序的基本概念和分类 所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。排序算法,就是如何使得记录按照要求排列的方法。 排序的稳定性: 经过某...