用于缓存磁盘响应的wsgi中间件。

wsgi_cache的Python项目详细描述


Date:2010-01-05
Authors:Nathan R. Yergler <nathan@yergler.net>
Copyright:2010, Nathan R. Yergler, Creative Commons; licensed to the public under the MIT License.

wsgi_cache是一个提供磁盘的wsgi中间件 用于wsgi应用程序的缓存。有点粗糙 不灵活,有点像你爷爷。

wsgi_cache设计用于将对wsgi站点的请求缓存到 磁盘上的缓存目录。缓存目录将具有相同的 作为请求的目录布局(即,如果请求/foo/bar,则 foo目录将在缓存中创建,并存储bar。 在那里)。除了删除缓存文件之外,还有no缓存过期 从磁盘。这是一个特色。

安装

wsgi_cache可以作为python egg安装,使用easy_install:

$ easy_install wsgi_cache

配置

wsgi_缓存的配置通常使用粘贴部署完成。在 这种情况下,可以将其配置为筛选器:

[app:main]
use = egg:my_wsgi_app#app
filter-with = cache

[filter:cache]
use = egg:wsgi_cache#middleware
cache_dir = ./cache

cache_dir是唯一必需的配置参数,并且 将被解释为相对于global_conf['here']

^ {tt1}$还支持另外三个配置参数:

  • 内容类型
    指定为缓存资源提供服务时使用的内容类型;请参见 Limitations下面的详细信息。默认设置为 text/html.
  • 缓存路径
    /开头的逗号分隔的路径列表 指定要缓存的路径。如果指定,则仅请求 以其中一个字符串开头的路径将被缓存。
  • 目录索引
    访问以/(类似于/monkeys/)结尾的路径时, wsgi_缓存需要创建一个特殊的文件名。默认情况下,这是 __index.html。所以在默认情况下,缓存页面/monkeys/ 保存到文件${path_to_cache}/monkeys/__index.html;如果我们 将目录索引设置为将保存到的dir_x${path_to_cache}/monkeys/dirx.

行为

当请求进入时,wsgi_cache检查路径以确定 如果应该缓存它。带有querystring的请求是not 缓存,而不考虑cache_paths的使用。如果请求是 应该被缓存,wsgi_cache在缓存中查找页 如果可以的话,还可以提供那份。如果不可用,请求是 传递给应用程序,结果被保存并返回。

请注意,在许多情况下,您会希望利用wsgi_cache的 直接使用 前端web服务器(即,带有mod_rewrite的apache)。

开发

wsgi_cache可以使用buildout

$ python bootstrap.py
$ ./bin/buildout

这将安装任何依赖项,并创建一个包装器 python脚本,可用于使用^{tt1}运行shell$ 在python路径上。

运行测试

wsgi_cache使用nose运行测试。你可以进行测试 跑步套房:

$ python setup.py nosetests

如果您使用buildout进行开发,nose将安装在 为您构建:

$ ./bin/python setup.py nosetests

限制

  • wsgi_cache只存储响应体以允许 由更快的静态web服务器提供缓存文件。像这样的, 此时它只能返回单个内容类型。

下载

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java日期对象如何增加星期几   java同一类的两个版本(一个是静态的,一个是非静态的)   azure缺少ApplicationInsightsJava和Spring Boot 2.3.0的日志   java为什么JBoss EAP无法启动?   Java如何使用enum收集类?   Java FX 3D:不遵守其Z坐标的对象   mysql如何部署在internet上作为服务器运行的java应用程序?   java以编程方式滚动到Vaadin应用程序中的组件   java Maven发布插件跳过执行但不准备的测试   java如何使用Mockito模拟Spring ApplicationContext的getBean方法,用TestNG编写单元测试?   java如何实现Android细节通知?   java Spring引导:检查资源是否在过滤器级别有注释   java应用程序在使用安装了ACTION\u MEDIA\u的sendBroadcast时会失去焦点   java将T[](其中T是字节[])返回到字节[]   如何使用Java创建文件上传的代理服务器?   java指向同一活动的两个按钮   javascript是否将自定义对象的映射转换为json对象?