服务共享静态文件

class werkzeug.middleware.shared_data.SharedDataMiddleware(app, exports, disallow=None, cache=True, cache_timeout=43200, fallback_mimetype='application/octet-stream')

一个WSGI中间件,它为开发环境或简单的服务器设置提供静电内容。它的用法相当简单::

import os
from werkzeug.middleware.shared_data import SharedDataMiddleware

app = SharedDataMiddleware(app, {
    '/shared': os.path.join(os.path.dirname(__file__), 'shared')
})

文件夹的内容 ./shared 现在将在 http://example.com/shared/ 。这在开发期间非常有用,因为不需要独立的媒体服务器。还可以将文件挂载在根文件夹上并继续使用该应用程序,因为共享数据中间件会将所有未处理的请求转发给该应用程序,即使这些请求位于其中一个共享文件夹之下。

如果 pkg_resources 也可以告诉中间件从包数据提供文件:

app = SharedDataMiddleware(app, {
    '/static': ('myapplication', 'static')
})

这将为 static 文件夹 myapplication python包。

可选的 disallow 参数可以是 fnmatch() 无法从Web访问的文件的规则。如果 cache 设置为 False 不发送缓存头。

目前,中间件不支持非ASCII文件名。如果文件系统上的编码恰好与URI的编码匹配,那么它可能会工作,但这也可能是偶然的。我们强烈建议静电文件仅使用ASCII码的文件名。

中间件将使用python猜测mimetype mimetype 模块。如果找不到字符集,它将返回到 fallback_mimetype .

参数:
  • app (WSGIApplication) -- 要包装的应用程序。如果不想包装应用程序,可以通过 NotFound .

  • exports (dict[str, str | tuple[str, str]] | t.Iterable[tuple[str, str | tuple[str, str]]]) -- 导出文件和文件夹的列表或字典。

  • disallow (None) -- 一览表 fnmatch() 规则。

  • cache (bool) -- 启用或禁用缓存头。

  • cache_timeout (int) -- 头的缓存超时(秒)。

  • fallback_mimetype (str) -- 未知文件的回退mimetype。

Changelog

在 1.0 版本发生变更: 默认值 fallback_mimetypeapplication/octet-stream . 如果文件名看起来像文本mimetype,则 utf-8 添加了字符集。

在 0.6 版本加入: 补充 fallback_mimetype .

在 0.5 版本发生变更: 补充 cache_timeout .

is_allowed(filename)

子类可以重写此方法以禁止访问某些文件。但是,通过提供 disallow 在构造函数中,此方法被覆盖。

参数:

filename (str) --

返回类型:

bool