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之数据类型总结
Sep 24 Python
Python时间戳使用和相互转换详解
Dec 11 Python
python logging重复记录日志问题的解决方法
Jul 12 Python
Python检查ping终端的方法
Jan 26 Python
Django利用cookie保存用户登录信息的简单实现方法
May 27 Python
python for和else语句趣谈
Jul 02 Python
pycharm设置当前工作目录的操作(working directory)
Feb 14 Python
Python 3.8 新功能来一波(大部分人都不知道)
Mar 11 Python
python如何停止递归
Sep 09 Python
浅析Python的命名空间与作用域
Nov 25 Python
python元组打包和解包过程详解
Aug 02 Python
Golang Web 框架Iris安装部署
Aug 14 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 array_values 返回数组的值实例详解
2016/11/17 PHP
PHP实现图片批量打包下载功能
2017/03/01 PHP
tp5(thinkPHP5)框架数据库Db增删改查常见操作总结
2019/01/10 PHP
Dom加载让图片加载完再执行的脚本代码
2008/05/15 Javascript
Prototype 学习 工具函数学习($A方法)
2009/07/12 Javascript
js日期时间补零的小例子
2013/03/05 Javascript
原生JavaScript制作微博发布面板效果
2016/03/11 Javascript
微信小程序 图片边框解决方法
2017/01/16 Javascript
jQuery EasyUI 为Combo,Combobox添加清除值功能的实例
2017/04/13 jQuery
JavaScript脚本语言是什么_动力节点Java学院整理
2017/06/26 Javascript
聊聊那些使用前端Javascript实现的机器学习类库
2017/09/18 Javascript
ES6中Array.includes()函数的用法
2017/09/20 Javascript
总结js中的一些兼容性易错的问题
2017/12/18 Javascript
vue计算属性时v-for处理数组时遇到的一个bug问题
2018/01/21 Javascript
JS运动改变单物体透明度的方法分析
2018/01/23 Javascript
浅谈PDF.js使用心得
2018/06/07 Javascript
vue中组件的过渡动画及实现代码
2018/11/21 Javascript
vue与原生app的对接交互的方法(混合开发)
2018/11/28 Javascript
解决echarts vue数据更新,视图不更新问题(echarts嵌在vue弹框中)
2020/07/20 Javascript
简单实现python进度条脚本
2017/12/18 Python
原生python实现knn分类算法
2019/10/24 Python
详解Python可视化神器Yellowbrick使用
2019/11/11 Python
Python超越函数积分运算以及绘图实现代码
2019/11/20 Python
keras打印loss对权重的导数方式
2020/06/10 Python
python读写数据读写csv文件(pandas用法)
2020/12/14 Python
飞利浦比利时官方网站:Philips比利时
2016/08/24 全球购物
迪卡侬荷兰官网:Decathlon荷兰
2017/10/29 全球购物
澳大利亚最早和最古老的巨型游戏专家:Yardgames
2020/02/20 全球购物
Order by的几种用法
2013/06/16 面试题
生物化工工艺专业应届生求职信
2013/10/08 职场文书
工地门卫岗位职责
2013/12/30 职场文书
挂牌仪式主持词
2014/03/20 职场文书
大学学习计划书范文
2014/05/02 职场文书
打架赔偿协议书范本
2014/10/26 职场文书
情感电台广播稿
2015/08/18 职场文书
2019感恩宣传标语!
2019/07/05 职场文书