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 collections模块实例讲解
Apr 07 Python
python图像处理之镜像实现方法
May 30 Python
Python实现多线程HTTP下载器示例
Feb 11 Python
Django框架实现逆向解析url的方法
Jul 04 Python
Python实现两个list求交集,并集,差集的方法示例
Aug 02 Python
Python/Django后端使用PIL Image生成头像缩略图
Apr 30 Python
Python中模块(Module)和包(Package)的区别详解
Aug 07 Python
浅谈pytorch、cuda、python的版本对齐问题
Jan 15 Python
使用Matplotlib绘制不同颜色的带箭头的线实例
Apr 17 Python
Python使用xlrd实现读取合并单元格
Jul 09 Python
matplotlib subplot绘制多个子图的方法示例
Jul 28 Python
详解Python小数据池和代码块缓存机制
Apr 07 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 mssql 时间格式问题
2009/01/13 PHP
Ubuntu server 11.04安装memcache及php使用memcache来存储session的方法
2016/05/31 PHP
PHP实现QQ快速登录的方法
2016/09/28 PHP
js Dialog 实践分享
2012/10/22 Javascript
表单元素与非表单元素刷新区别详细解析
2013/11/06 Javascript
JS 打印界面的CSS居中代码适用所有浏览器
2014/03/19 Javascript
Js保留小数点的4种效果实现代码分享
2014/04/12 Javascript
js表单序列化判断空值的实例
2017/09/22 Javascript
js实现随机点名系统(实例讲解)
2017/10/18 Javascript
vuex state及mapState的基础用法详解
2018/04/19 Javascript
vue项目中使用百度地图的方法
2018/06/08 Javascript
新手必须知的Node.js 4个JavaScript基本概念
2018/09/16 Javascript
微信小程序云开发实现数据添加、查询和分页
2019/05/17 Javascript
使用原生javascript开发计算器实例代码
2021/02/21 Javascript
[01:12:40]DOTA2-DPC中国联赛 正赛 DLG vs XG BO3 第三场 1月25日
2021/03/11 DOTA
linux系统使用python监控apache服务器进程脚本分享
2014/01/15 Python
解析Mac OS下部署Pyhton的Django框架项目的过程
2016/05/03 Python
itchat和matplotlib的结合使用爬取微信信息的实例
2017/08/25 Python
Python实现的基数排序算法原理与用法实例分析
2017/11/23 Python
python队列Queue的详解
2019/05/10 Python
python二维码操作:对QRCode和MyQR入门详解
2019/06/24 Python
Python中文分词库jieba,pkusegwg性能准确度比较
2020/02/11 Python
python 监控logcat关键字功能
2020/09/04 Python
css3进行截取替代js的substring
2013/09/02 HTML / CSS
详解三种方式实现平滑滚动页面到顶部的功能
2019/04/23 HTML / CSS
雅诗兰黛旗下走天然植物路线的彩妆品牌:Prescriptives
2016/08/14 全球购物
创造美妙香氛体验:Aera扩散器和香水
2018/11/25 全球购物
市场营销专业个人自荐信格式
2013/09/21 职场文书
业务员岗位职责
2013/11/16 职场文书
计算机专业学生的自我评价
2013/12/15 职场文书
财务管理职业生涯规划范文
2013/12/27 职场文书
个人安全生产责任书
2014/07/28 职场文书
2015政治思想表现评语
2015/03/25 职场文书
地心历险记观后感
2015/06/15 职场文书
2016年度师德标兵先进事迹材料
2016/02/26 职场文书
关于Numpy之repeat、tile的用法总结
2021/06/02 Python