Spec-Zone.ru › Werkzeug 2.2

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

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/. Это очень полезно во время разработки, так как отдельный медиа-сервер не требуется. Файлы также могут быть смонтированы в корневую папку и при этом приложение всё равно будет работать, поскольку прослойка shared data перенаправляет все необработанные запросы к приложению, даже если запросы находятся под одной из общих папок.

Если 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 (Union[Dict[str, Union[str, Tuple[str, str]]]], Iterable[Tuple[str, Union[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–2022 Pallets
Licensed under the BSD 3-clause License.
https://werkzeug.palletsprojects.com/en/2.2.x/middleware/shared_data/

Spec-Zone.ru

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