在pylons的文档中,有专门讲过如何添加自己的Middleware, 通过这些Middleware, 我们可以改变输入和输出。这也是WSGI(Web Server Gateway Interface)的优势和精髓所在。

那么在pyramid中,我们如何添加Middleware呢?

假设我们要添加一个我们自己的Middleware, 用来记录每次请求的日志

下面就是一个符合规范的Middleware, 构造函数中接受一个WSGI APP, __call__返回一个WSGI APP.

class LoggerMiddleware(object):'''WSGI middleware'''def __init__(self, application):self.app = applicationdef __call__(self, environ, start_response):# write logstry:return self.app(environ, start_response)except Exception, e:# write logspassfinally:# write logspass

在项目的__init__.py的main函数中, 在config.make_wsgi_app上包上一层我们的Middleware:

from pyramid.config import Configuratorconfig = Configurator()config.scan()app = config.make_wsgi_app()# Put middlewareapp = LoggerMiddleware(app)serve(app, host='0.0.0.0')

转载于:https://www.cnblogs.com/JustRun1983/archive/2012/07/22/2603781.html

如何为Pyramid添加Middleware相关推荐

  1. Ubuntu 如何为 XMind 添加快速启动方式和图标

    目录 Ubuntu 如何为 XMind 添加快速启动方式和图标 Ubuntu 如何为 XMind 添加快速启动方式和图标 按照教程Ubuntu16.04LTS安装XMind8并创建运行图标进行Xmin ...

  2. html输入页码跳转,如何为WordPress添加输入页码跳转功能?

    最近看到有些网站没有输入页码跳转的功能,使用起来不是很方便,我就想用户如果需要跳转到那一页只需在输入框中输入相应的页面点击确定就可以跳转到指定页面,那么如何为WordPress添加输入页码跳转功能?接 ...

  3. 如何为Ubuntu添加中文支持

    如何为Ubuntu添加中文支持 我的寝室电脑装了VMWare虚拟机,虚拟机里装了Ubuntu8.04,虚拟机与外界无法联网. 近些天来突发奇想,想试一下纯Linux下工作感觉如何,但发现初装系统时默认 ...

  4. 如何为foobar添加歌词

    如何为foobar添加歌词 下载插件及脚本:https://pan.baidu.com/s/1knEvq0gHM9l7FlLOUEjHPw 提取码:9wvp 打开footbar,按ctrl+p, 进入 ...

  5. 如何为WPF添加Main()函数

    一般的.WPF的Main()函数是自动生成的,不过有时候我们需要为我们的应用程序传参.那么自动生成的Main()函数就不会满足我们的要求. 那么如何为WPF Application 设置Main()函 ...

  6. 如何为 Drupal 添加简单的 SEO META 标签(title keywords des...

    2019独角兽企业重金招聘Python工程师标准>>> Drupal 做为优秀的世界级开源 CMS 建站系统,自然有很多开发者贡献与 SEO 相关的模块插件扩展例如:用来批量自定义 ...

  7. 如何为SharePoint添加一个简单地SMTP邮件发送服务器?

    SharePoint经常要进行相关的电子邮件通知, 如果企业内部没有Exchange专业的邮箱,那么可以通过在MOSS的服务器本机上自己部署一个简单的Email smtp 服务.配置方法如下: 一.使 ...

  8. 如何为Matlab添加自己喜欢的字体

    笔者选择添加字体的原因 Matlab初始字体比较丑,且其他字体并不能满足笔者对字体的要求.因此笔者选择安装自己喜欢的字体. 方法一:将字体直接添加至Matlab指定的文件夹中 此方法操作步骤如下: 笔 ...

  9. html网页添加友链,如何为typecho添加独立友链页面

    做了博客,自然也要添加一些友链,和大佬们推动一下交流,顺便再多蹭些访问量.但是怎样添加友链却是一个令人困惑的问题,尤其是对于typecho来说,实在不容易,更不用去提这些没有友链相关配置的typech ...

最新文章

  1. 计算机 二进制 中国,二进制与计算机
  2. vijos P1740 聪明的质检员
  3. 2013年工作中遇到的20个问题:241-260
  4. 用自然语言教育人工智能:百度新算法发展出zero-shot学习能力
  5. ICDAR2017 Competition on Reading Chinese Text in the Wild(RCTW-17) 介绍
  6. oracle rac 在完成安装错误。
  7. SVM---通俗易懂图解高斯核函数及实现
  8. mapbox gl本地化部署实践
  9. minus oracle 顺序_oracle 两表数据对比---minus
  10. 游戏本地化翻译有哪些内容需要注意
  11. centos7 安装拼音输入法
  12. python中shelf对象_shelve -- 用来持久化任意的Python对象
  13. 7z和winrar命令行压缩方法
  14. scratch小猫钓鱼 电子学会图形化编程scratch等级考试四级真题和答案解析2021-9
  15. Mysql 分组查询top n(多种方法)
  16. 王曦:大数据人工智能中的运筹与决策科学
  17. 计算机累加器有加法器功能吗,累加器是什么_累加器的作用及原理介绍
  18. 面试必问---TCP连接
  19. 2021.5.13如何安装APK到手机
  20. 阿里云服务器企业型如何选择配置最佳?

热门文章

  1. Android中使用xml处理图片,Android布局 – 在xml中偏移背景图像
  2. 北斗芯片服务器,北斗芯片:GPS定位系统,正是再见!你期待吗?
  3. 【NIO】通道Channel
  4. nginx 反向代理和负载均衡
  5. python爬虫实战,requests模块,Python实现抓取头条街拍美图
  6. java 反射获取父类的字段_java反射获取父类和子类字段值、赋值
  7. java range对象_Java LocalTime range()用法及代码示例
  8. rudesocket如何使用_[WebSocket入门]手把手搭建WebSocket多人在线聊天室(SpringBoot+WebS...
  9. redis缓存失效时间设为多少_java操作Redis缓存设置过期时间的方法
  10. LNMP架构详解(1)——了解架构的基本信息