Pyramid添加Middleware的方法实例


Posted in Python onNovember 27, 2013

假设我们要添加一个我们自己的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 相关文章推荐
Python 迭代器工具包【推荐】
May 06 Python
Python构造自定义方法来美化字典结构输出的示例
Jun 16 Python
python 数据的清理行为实例详解
Jul 12 Python
python实现图像识别功能
Jan 29 Python
python读取csv和txt数据转换成向量的实例
Feb 12 Python
python实现kmp算法的实例代码
Apr 03 Python
对python3.4 字符串转16进制的实例详解
Jun 12 Python
Django处理Ajax发送的Get请求代码详解
Jul 29 Python
浅谈tensorflow中Dataset图片的批量读取及维度的操作详解
Jan 20 Python
简单了解Python write writelines区别
Feb 27 Python
什么是Python中的匿名函数
Jun 02 Python
Python matplotlib安装以及实现简单曲线的绘制
Apr 26 Python
linux环境下安装pyramid和新建项目的步骤
Nov 27 #Python
Pyramid将models.py文件的内容分布到多个文件的方法
Nov 27 #Python
Pyramid Mako模板引入helper对象的步骤方法
Nov 27 #Python
使用setup.py安装python包和卸载python包的方法
Nov 27 #Python
pyramid配置session的方法教程
Nov 27 #Python
python实现问号表达式(?)的方法
Nov 27 #Python
Python时区设置方法与pytz查询时区教程
Nov 27 #Python
You might like
php相当简单的分页类
2008/10/02 PHP
php中rename函数用法分析
2014/11/15 PHP
PHP中使用php5-ffmpeg撷取视频图片实例
2015/01/07 PHP
Thinkphp5框架实现获取数据库数据到视图的方法
2019/08/14 PHP
PHP程序员简单的开展服务治理架构操作详解(一)
2020/05/14 PHP
js中cookie的使用详细分析
2008/05/28 Javascript
一次失败的jQuery优化尝试小结
2011/02/06 Javascript
jQuery检测鼠标左键和右键点击的方法
2015/03/17 Javascript
js简单实现竖向tab选项卡的方法
2015/05/04 Javascript
Bootstrap每天必学之前端开发框架
2015/11/19 Javascript
Javascript中函数名.length属性用法分析(对比arguments.length)
2016/09/16 Javascript
jquery 判断是否支持Placeholder属性的方法
2017/02/07 Javascript
原生js实现简单的模态框示例
2017/09/08 Javascript
jquery实现图片跟随鼠标的实例
2017/10/17 jQuery
JS手机端touch事件计算滑动距离的方法示例
2017/10/26 Javascript
老生常谈JavaScript获取CSS样式的方法(兼容各浏览器)
2018/09/19 Javascript
部署vue+Springboot前后端分离项目的步骤实现
2020/05/31 Javascript
在vue-cli3中使用axios获取本地json操作
2020/07/30 Javascript
[56:47]Ti4 循环赛第三日 iG vs Liquid
2014/07/12 DOTA
[01:22:19]EG vs TNC Supermajor小组赛B组败者组第一轮 BO3 第二场 6.2
2018/06/03 DOTA
Python实现在Linux系统下更改当前进程运行用户
2015/02/04 Python
pandas表连接 索引上的合并方法
2018/06/08 Python
查找python项目依赖并生成requirements.txt的方法
2018/07/10 Python
pycharm在调试python时执行其他语句的方法
2018/11/29 Python
Python list列表中删除多个重复元素操作示例
2019/02/27 Python
100行Python代码实现每天不同时间段定时给女友发消息
2019/09/27 Python
Python如何把多个PDF文件合并代码实例
2020/02/13 Python
Keras之自定义损失(loss)函数用法说明
2020/06/10 Python
Matplotlib中rcParams使用方法
2021/01/05 Python
canvas实现漂亮的下雨效果的示例
2018/04/18 HTML / CSS
Zatchels官网:英国剑桥包品牌
2021/01/12 全球购物
北京-环亚运商测试题.net程序员初步测试题
2013/05/28 面试题
工作态度不端正检讨书
2014/10/04 职场文书
幼儿园大班见习报告
2014/10/31 职场文书
2014年旅游局法制宣传日活动总结
2014/11/01 职场文书
父母教会我观后感
2015/06/17 职场文书