Spec-Zone.ru › Werkzeug

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

class werkzeug.middleware.shared_data.SharedDataMiddleware(app, exports, disallow=None, cache=True, cache_timeout=60 * 60 * 12, 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 (cabc.Mapping[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/latest/middleware/shared_data/

Spec-Zone.ru

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