kavlab / image-tools

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Итоговый проект по предмету Углубленное программирование на Python

Приложение реализовано с использованием фреймворка Django. Для оформления использованы стили Bootstrap.

Описание

Проект представляет из себя веб-приложение с двумя инструментами по работе с изображениями. На главной странице представлено описание этих иснтрументов.

  • Анализатор цветов, который позволяет определить 5 осноных цветов изображения и вывести их коды для использования, например в стилях CSS

  • Конвертор одного или нескольких изображений в один файл формата PDF

После нажатия на кнопку "Сконвертировать" будет создан файл PDF и автоматически запустится загрузка.

Для работы с изображениями в первом инструменте используются библиотеки numpy, pillow, scikit-learn (для определения основных цветов используется кластеризация методом k-средних).

Во втором для преобразования в PDF используется библиотека img2pdf.

Установка

Установить приложение можно локально на компьютере. А можно в контейнере Docker. Для установки в контейнер были подготовлены файлы Docker и Docker Compose.

В качестве веб-сервера используется gunicorn, у которого устанавливается максимальное количество воркеров равное количеству процессорных ядер (в файле gunicorn.py). А для управления статическими файлами используется прокси сервер nginx.

Все настройки для установки заданы в файлах Dockerfile, Dockerfile-nginx, nginx.conf, docker-compose.yaml.

Перед созданием образа Docker нужно выполнить два следующих действия:

В каталоге imagetools нужно создать файл secret.py, в котором должна быть одна строка:

SECRET_KEY = '<secret_key>'

Вместо <secret_key> нужно сгенерировать и вставить новый ключ. Для генерации ключа можно воспользоваться этим сервисом: Djecrety. Или любым подобным.

В корневом каталоге (рядом с Dockerfile) создать файл default.env:

DJANGO_DEBUG=0
DJANGO_ALLOWED_HOSTS=tools.domain.ru
CSRF_TRUSTED_ORIGINS=https://*.domain.ru

Переменная DJANGO_DEBUG отвечает за режим отладки в Django. Если значение будет равно 1, то режим отладки будет включен.

В переменной DJANGO_ALLOWED_HOSTS должны быть указаны все URL, по которым будет доступен проект. Если адресов больше одного, то их нужно перечислить через пробел.

Если доступ к проекту выполняется через домен с использованием HTTPS, то в переменной CSRF_TRUSTED_ORIGINS необходимо указать этот домен. Доступно указание домена в таком виде: https://*.domain.ru.

После создания этих файлов, нужно выполнить следующие команды Docker Compose для построения образов, создания и запуска контейнеров:

docker compose build
docker compose create
docker compose start

About


Languages

Language:Python 58.0%Language:HTML 39.9%Language:Dockerfile 2.1%