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 调用DLL操作抄表机
Jan 12 Python
跟老齐学Python之用Python计算
Sep 12 Python
Python基于递归算法实现的走迷宫问题
Aug 04 Python
python3+PyQt5自定义视图详解
Apr 24 Python
Python常见内置高效率函数用法示例
Jul 31 Python
ActiveMQ:使用Python访问ActiveMQ的方法
Jan 30 Python
python生成带有表格的图片实例
Feb 03 Python
python写一个随机点名软件的实例
Nov 28 Python
Django的CVB实例详解
Feb 10 Python
python使用Geany编辑器配置方法
Feb 21 Python
对Python 字典元素进行删除的方法
Jul 31 Python
python如何进行基准测试
Apr 26 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在获取指定目录下的目录,在获取的目录下面再创建文件,多平台
2011/08/03 PHP
php实现图片添加水印功能
2014/02/13 PHP
ThinkPHP整合datatables实现服务端分页的示例代码
2018/02/10 PHP
用户注册常用javascript代码
2009/08/29 Javascript
jquery datatable后台封装数据示例代码
2014/08/07 Javascript
JS实现的用来对比两个用指定分隔符分割的字符串是否相同
2014/09/19 Javascript
jQuery插件scroll实现无缝滚动效果
2015/04/27 Javascript
javascript实现全角转半角的方法
2016/01/23 Javascript
浅谈JavaScript for循环 闭包
2016/06/22 Javascript
基于MVC+EasyUI的web开发框架之使用云打印控件C-Lodop打印页面或套打报关运单信息
2016/08/29 Javascript
jquery动态添加文本并获取值的方法
2016/10/12 Javascript
AngularJS入门教程二:在路由中传递参数的方法分析
2017/05/27 Javascript
JS控制鼠标拒绝点击某一按钮的实例
2017/12/29 Javascript
vue实现在表格里,取每行的id的方法
2018/03/09 Javascript
vue实现动态添加数据滚动条自动滚动到底部的示例代码
2018/07/06 Javascript
vue下拉菜单组件(含搜索)的实现代码
2018/11/25 Javascript
JavaScript设计模式--简单工厂模式定义与应用案例详解
2020/05/23 Javascript
vue 添加和编辑用同一个表单,el-form表单提交后清空表单数据操作
2020/08/03 Javascript
浅谈vue websocket nodeJS 进行实时通信踩到的坑
2020/09/22 NodeJs
vue3弹出层V3Popup实例详解
2021/01/04 Vue.js
[04:32]玩具屠夫中文语音节选
2020/08/23 DOTA
[01:12:40]DOTA2-DPC中国联赛 正赛 DLG vs XG BO3 第三场 1月25日
2021/03/11 DOTA
python多线程http下载实现示例
2013/12/30 Python
python正则表达式面试题解答
2020/04/28 Python
详解python3中zipfile模块用法
2018/06/18 Python
浅谈python 中类属性共享的问题
2019/07/02 Python
django 通过URL访问上传的文件方法
2019/07/28 Python
python实现俄罗斯方块小游戏
2020/04/24 Python
html5 touch事件实现页面上下滑动效果【附代码】
2016/03/10 HTML / CSS
原装进口全世界:天猫国际
2016/08/03 全球购物
Columbia美国官网:美国著名的户外服装品牌
2016/11/24 全球购物
Bose法国官网:购买耳机、扬声器、家庭影院、专业音响
2017/12/21 全球购物
社会治安综合治理管理责任书
2014/04/16 职场文书
二年级上册数学教学计划
2015/01/20 职场文书
python实现大文本文件分割成多个小文件
2021/04/20 Python
HTML+VUE分页实现炫酷物联网大屏功能
2021/05/27 Vue.js