Spec-Zone.ru › Werkzeug 2.3

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

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–2022 Pallets
Licensed under the BSD 3-clause License.
https://werkzeug.palletsprojects.com/en/2.3.x/middleware/shared_data/

Spec-Zone.ru

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