Spec-Zone.ru › Werkzeug 2.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 (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 по умолчанию для неизвестных файлов.
Тип возвращаемого значения

None

Журнал изменений

Изменено в версии 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–2021 Pallets
Licensed under the BSD 3-clause License.
https://werkzeug.palletsprojects.com/en/2.0.x/middleware/shared_data/

Spec-Zone.ru

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