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单例模式与metaclass
Jan 15 Python
Python编程argparse入门浅析
Feb 07 Python
python如何将图片转换为字符图片
Aug 19 Python
使用python将时间转换为指定的格式方法
Nov 12 Python
selenium+python自动化测试之环境搭建
Jan 23 Python
Python OpenCV利用笔记本摄像头实现人脸检测
Aug 20 Python
python爬虫中多线程的使用详解
Sep 23 Python
Python爬虫使用代理IP的实现
Oct 27 Python
python中seaborn包常用图形使用详解
Nov 25 Python
基于Python绘制个人足迹地图
Jun 01 Python
详解Pymongo常用查询方法总结
Jan 29 Python
Python一些基本的图像操作和处理总结
Jun 23 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
jquery.AutoComplete.js中文修正版(支持firefox)
2010/04/09 Javascript
Node.js模块加载详解
2014/08/16 Javascript
Javascript中this的用法详解
2014/09/22 Javascript
jquery实现多屏多图焦点图切换特效的方法
2015/05/04 Javascript
JS模拟实现Select效果代码
2015/09/24 Javascript
探讨JavaScript标签位置的存放与功能有无关系
2016/01/15 Javascript
Bootstrap在线电子商务网站实战项目5
2016/10/14 Javascript
简单几步实现返回顶部效果
2016/12/05 Javascript
教你5分钟学会用requirejs(必看篇)
2017/07/25 Javascript
jQuery实现滚动效果
2017/11/17 jQuery
JS中appendChild追加子节点无效的解决方法
2018/10/14 Javascript
原生js实现淘宝放大镜效果
2020/10/28 Javascript
Vue中rem与postcss-pxtorem的应用详解
2019/11/20 Javascript
vue-i18n实现中英文切换的方法
2020/07/06 Javascript
[02:48]DOTA2超级联赛专访海涛:你们的选择没有错
2013/06/07 DOTA
[01:16:50]DOTA2-DPC中国联赛 正赛 Phoenix vs CDEC BO3 第一场 3月7日
2021/03/11 DOTA
Python fileinput模块使用实例
2015/05/28 Python
Python数据库的连接实现方法与注意事项
2016/02/27 Python
Python中规范定义命名空间的一些建议
2016/06/04 Python
利用ctypes提高Python的执行速度
2016/09/09 Python
python3实现ftp服务功能(客户端)
2017/03/24 Python
Python中垃圾回收和del语句详解
2018/11/15 Python
python根据url地址下载小文件的实例
2018/12/18 Python
pycharm设置鼠标悬停查看方法设置
2019/07/29 Python
python数据归一化及三种方法详解
2019/08/06 Python
Python编程快速上手——选择性拷贝操作案例分析
2020/02/28 Python
Windows 下更改 jupyterlab 默认启动位置的教程详解
2020/05/18 Python
用pushplus+python监控亚马逊到货动态推送微信
2021/01/29 Python
美国领先的奢侈手表在线零售商:WatchMaxx
2017/12/17 全球购物
作为网站管理者应当如何防范XSS
2014/08/16 面试题
个人评价范文分享
2014/01/11 职场文书
求职简历自荐信
2014/06/18 职场文书
导游词之台湾阿里山
2019/10/23 职场文书
redis实现排行榜功能
2021/05/24 Redis
如何利用golang运用mysql数据库
2022/03/13 Golang
详解Python内置模块Collections
2022/03/22 Python