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通过imaplib模块读取gmail里邮件的方法
May 08 Python
python3批量删除豆瓣分组下的好友的实现代码
Jun 07 Python
TensorFlow如何实现反向传播
Feb 06 Python
浅谈Python Opencv中gamma变换的使用详解
Apr 02 Python
python 实现将字典dict、列表list中的中文正常显示方法
Jul 06 Python
python flask实现分页的示例代码
Aug 02 Python
pyinstaller打包程序exe踩过的坑
Nov 19 Python
python爬虫添加请求头代码实例
Dec 28 Python
Python3.9又更新了:dict内置新功能
Feb 28 Python
利用Python实现字幕挂载(把字幕文件与视频合并)思路详解
Oct 21 Python
python函数超时自动退出的实操方法
Dec 28 Python
opencv用VS2013调试时用Image Watch插件查看图片
Jul 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获取指定日期之间的各个周和月的起止时间
2014/11/24 PHP
php选择排序法实现数组排序实例分析
2015/02/16 PHP
JavaScript使用cookie
2007/02/02 Javascript
在UpdatePanel内jquery easyui效果失效的解决方法
2010/04/11 Javascript
JS格式化数字金额用逗号隔开保留两位小数
2013/10/18 Javascript
javascript中简单的进制转换代码实例
2013/10/26 Javascript
JavaScript实现定时隐藏与显示图片的方法
2015/08/06 Javascript
Bootstrap编写一个兼容主流浏览器的受众巨幕式风格页面
2016/07/01 Javascript
jQuery Validate让普通按钮触发表单验证的方法
2016/12/15 Javascript
Angular2平滑升级到Angular4的步骤详解
2017/03/29 Javascript
jQuery实现模糊查询的方法分析
2018/05/10 jQuery
浅析JS中什么是自定义react数据验证组件
2018/10/19 Javascript
vue中组件的3种使用方式详解
2019/03/23 Javascript
Element中的Cascader(级联列表)动态加载省\市\区数据的方法
2019/03/27 Javascript
20个必会的JavaScript面试题(小结)
2019/07/02 Javascript
JS实现移动端点击按钮复制文本内容
2019/07/28 Javascript
[51:36]Optic vs Newbee 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
[51:29]Alliance vs TNC 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/18 DOTA
如何用Python制作微信好友个性签名词云图
2019/06/28 Python
python卸载后再次安装遇到的问题解决
2019/07/10 Python
python如何实现单链表的反转
2020/02/10 Python
利用Pycharm + Django搭建一个简单Python Web项目的步骤
2020/10/22 Python
HTML5在线预览PDF的示例代码
2017/09/14 HTML / CSS
华为俄罗斯官方网上商城:购买Huawei手机和平板
2017/04/21 全球购物
linux面试相关问题
2013/04/28 面试题
大学生求职简历的自我评价
2013/10/21 职场文书
超市店庆活动方案
2014/08/31 职场文书
沙滩主题婚礼活动策划方案
2014/09/15 职场文书
甜品蛋糕店创业计划书
2014/09/21 职场文书
付款委托书范本
2014/10/05 职场文书
会计师事务所实习证明
2014/11/16 职场文书
火烧圆明园的观后感
2015/06/03 职场文书
2016年小学生新年寄语
2015/08/18 职场文书
六五普法学习心得体会
2016/01/21 职场文书
Redis5之后版本的高可用集群搭建的实现
2021/04/27 Redis
Java9新特性之Module模块化编程示例演绎
2022/03/16 Java/Android