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字符串格式化输出方法分析
Apr 13 Python
Python3安装Scrapy的方法步骤
Nov 23 Python
Python用sndhdr模块识别音频格式详解
Jan 11 Python
在VS Code上搭建Python开发环境的方法
Apr 06 Python
解决python3中cv2读取中文路径的问题
Dec 05 Python
Python数据可视化库seaborn的使用总结
Jan 15 Python
Python类和实例的属性机制原理详解
Mar 21 Python
Python try except异常捕获机制原理解析
Apr 18 Python
python保留格式汇总各部门excel内容的实现思路
Jun 01 Python
PyCharm配置anaconda环境的步骤详解
Jul 31 Python
Python爬虫之爬取二手房信息
Apr 27 Python
python 离散点图画法的实现
Apr 01 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+js iframe实现上传头像界面无跳转
2014/04/29 PHP
基于Codeigniter框架实现的student信息系统站点动态发布功能详解
2017/03/23 PHP
PHP通过get方法获得form表单数据方法总结
2018/09/12 PHP
使用滤镜设置透明导致 IE 6/7/8/9 解析异常的解决方法
2011/04/07 Javascript
javascript对talbe进行动态添加、删除、验证实现代码
2012/03/29 Javascript
ajax提交表单实现网页无刷新注册示例
2014/05/08 Javascript
Jquery+asp.net后台数据传到前台js进行解析的方法
2014/05/11 Javascript
浅谈JavaScript中setInterval和setTimeout的使用问题
2015/08/01 Javascript
easyui Draggable组件实现拖动效果
2015/08/19 Javascript
JavaScript制作简单分页插件
2016/09/11 Javascript
JavaScript数据结构之双向链表定义与使用方法示例
2017/10/27 Javascript
Vue实现带进度条的文件拖动上传功能
2018/02/23 Javascript
详解javascript中的babel到底是什么
2018/06/21 Javascript
Vue项目从webpack3.x升级webpack4不完全指南
2019/04/28 Javascript
Python在Console下显示文本进度条的方法
2016/02/14 Python
Python调用adb命令实现对多台设备同时进行reboot的方法
2018/10/15 Python
Python用5行代码写一个自定义简单二维码
2018/10/21 Python
python 制作自定义包并安装到系统目录的方法
2018/10/27 Python
在python中利用GDAL对tif文件进行读写的方法
2018/11/29 Python
python爬虫超时的处理的实例
2018/12/19 Python
Python字符串匹配之6种方法的使用详解
2019/04/08 Python
python输入错误后删除的方法
2019/10/12 Python
python验证码图片处理(二值化)
2019/11/01 Python
Python scrapy增量爬取实例及实现过程解析
2019/12/24 Python
python+opencv实现移动侦测(帧差法)
2020/03/20 Python
CSS3 @font-face属性使用指南
2014/12/12 HTML / CSS
使用HTML5捕捉音频与视频信息概述及实例
2018/08/22 HTML / CSS
美国山地自行车、露营、户外装备和服装购物网站:Aventuron
2018/05/05 全球购物
五一服装活动方案
2014/01/11 职场文书
社会保险接收函
2014/01/12 职场文书
户外活动总结范文
2014/04/30 职场文书
小学班主任工作总结2015
2015/04/07 职场文书
放假通知范文
2015/04/14 职场文书
师德承诺书2015
2015/04/28 职场文书
茶花女读书笔记
2015/06/29 职场文书
MySQL三种方式实现递归查询
2022/04/18 MySQL