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使用7z解压apk包的方法
Apr 18 Python
Python基于pygame实现的font游戏字体(附源码)
Nov 11 Python
Python实现获取命令行输出结果的方法
Jun 10 Python
sublime text 3配置使用python操作方法
Jun 11 Python
Python的iOS自动化打包实例代码
Nov 22 Python
Mac在python3环境下安装virtualwrapper遇到的问题及解决方法
Jul 09 Python
浅谈Python_Openpyxl使用(最全总结)
Sep 05 Python
Django+uni-app实现数据通信中的请求跨域的示例代码
Oct 12 Python
python中的 zip函数详解及用法举例
Feb 16 Python
解决django FileFIELD的编码问题
Mar 30 Python
如何用 Python 处理不平衡数据集
Jan 04 Python
python 办公自动化——基于pyqt5和openpyxl统计符合要求的名单
May 25 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.MVC的模板标签系统(五)
2006/09/05 PHP
Codeigniter(CI)框架分页函数及相关知识
2014/11/03 PHP
fckeditor上传文件按日期存放及重命名方法
2015/05/22 PHP
PHP使用Redis替代文件存储Session的方法
2017/02/15 PHP
Laravel 5.4重新登录实现跳转到登录前页面的原理和方法
2017/07/13 PHP
PHP实现求解最长公共子串问题的方法
2017/11/17 PHP
PHP实现将base64编码字符串转换成图片示例
2018/06/22 PHP
PHP使用Http Post请求发送Json对象数据代码解析
2020/07/16 PHP
怎么用javascript进行拖拽
2006/07/20 Javascript
关于图片验证码设计的思考
2007/01/29 Javascript
javascript中字符串替换函数replace()方法与c# 、vb 替换有一点不同
2010/06/25 Javascript
js性能优化 如何更快速加载你的JavaScript页面
2012/03/17 Javascript
分享一个自定义的console类 让你不再纠结JS中的调试代码的兼容
2012/04/20 Javascript
JavaScript中for..in循环陷阱介绍
2013/11/12 Javascript
javascript常见操作汇总
2014/09/03 Javascript
JQuery简单实现锚点链接的平滑滚动
2015/05/03 Javascript
jQuery插件EasyUI实现Layout框架页面中弹出窗体到最顶层效果(穿越iframe)
2016/08/05 Javascript
JavaScript实现提交模式窗口后刷新父窗口数据的方法
2017/06/16 Javascript
基于JavaScript实现新增内容滚动播放效果附完整代码
2017/08/24 Javascript
Windows下使用Nodejs运行js的方法
2017/09/02 NodeJs
详解vue项目的构建,打包,发布全过程
2017/11/23 Javascript
vue-cli2打包前和打包后的css前缀不一致的问题解决
2018/08/24 Javascript
Node.js原生api搭建web服务器的方法步骤
2019/02/15 Javascript
node.js中express模块创建服务器和http模块客户端发请求
2019/03/06 Javascript
详解一些适用于Node.js的命名约定
2019/12/08 Javascript
在博客园博文中添加自定义右键菜单的方法详解
2020/02/05 Javascript
numpy使用技巧之数组过滤实例代码
2018/02/03 Python
Python txt文件加入字典并查询的方法
2019/01/15 Python
解决PyCharm不运行脚本,而是运行单元测试的问题
2019/01/17 Python
深入理解Python异常处理的哲学
2019/02/01 Python
PyQt5 窗口切换与自定义对话框的实例
2019/06/20 Python
python 实现将多条曲线画在一幅图上的方法
2019/07/07 Python
alice McCALL官网:澳大利亚时尚品牌
2020/11/16 全球购物
老师给学生的表扬信
2014/01/17 职场文书
加强机关作风建设心得体会
2014/10/22 职场文书
利用 Python 的 Pandas和 NumPy 库来清理数据
2022/04/13 Python