Эта статья является косвенным наследником JavaScript-lazyload. Возможно, вы захотите сначала прочитать это. Напомним: мы разработали процедуру JavaScript, которая будет загружать изображения в зависимости от размера и положения окон просмотра. Раньше мы предварительно генерировали эти изображения и возвращали определенные разрешения в виде статического контента, теперь мы хотим автоматически масштабировать изображения в соответствии с аргументами URL.
Блок расположения фляги
В этом руководстве мы предполагаем, что URL-адрес мультимедиа будет выглядеть следующим образом:
Во-первых, нам нужен flask-маршрут. Обратите внимание, что если вы используете static местоположение по умолчанию, вы не можете отправлять файлы из-за пределов "static"-каталога.
<path:path>
сопоставляет путь после картинки с аргументом path. Кроме того, мы оцениваем URL-аргументы. Функция generateImage будет описана в следующем разделе.
Перекодирование, изменение размера и кэширование
Теперь мы создаем функцию, которая будет генерировать изображение с запрошенными характеристиками из оригинала и сохранять его в пути кэширования, который функция затем вернет.
Мы используем модуль Python pillow (также известный как PIL) для изменения размера и повторного кодирования изображений,в частности, PIL.Image.thumbnail.
Если вы хотите добавить дополнительный заголовок к ответу, вы можете добавить этот дополнительный шаг перед возвратом ответа.
И все, теперь наш picture-route поддерживает масштабирование и кодирование! Как я сказал в начале, вы можете прочитать JavaScript-lazyload, чтобы понять, как развернуть это на вашем веб-сайте.
Не стесняйтесь, присылайте мне письма, чтобы поделиться своими мыслями!