Spec-Zone.ru › Werkzeug 3.0

Оказание общих статических файлов

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 в пакете Python myapplication.

Необязательный параметр disallow может быть списком правил fnmatch() для файлов, недоступных из сети. Если cache установлено в False, заголовки кеширования не отправляются.

В настоящее время средство не поддерживает имена файлов, не являющиеся ASCII. Если кодировка в файловой системе совпадает с кодировкой URI, то это может сработать, но это может быть случайностью. Мы настоятельно рекомендуем использовать только имена файлов ASCII для статических файлов.

Средство будет определять тип MIME с помощью модуля Python 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) – тип MIME по умолчанию для неизвестных файлов.
Журнал изменений

Изменено в версии 1.0: Значение по умолчанию fallback_mimetype равно application/octet-stream. Если имя файла похоже на тип MIME текста, к нему добавляется кодировка символов utf-8.

Добавлен в версии 0.6: Добавлен fallback_mimetype.

Изменено в версии 0.5: Добавлен cache_timeout.

is_allowed(filename)

Подклассы могут переопределить этот метод, чтобы запретить доступ к определённым файлам. Однако, передав disallow в конструктор, этот метод будет перезаписан.

Параметры:

filename (str) –

Тип возвращаемого значения:

bool

© 2007 Pallets
Licensed under the BSD 3-clause License.
https://werkzeug.palletsprojects.com/en/3.0.x/middleware/shared_data/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API