Цель тестового задания: Определить возможность самообучения кандидата, а так же понимание процесса работы web-приложений на Python.приложений на Python. Задание: Написать простой метод «Загрузчик изображений».
Функционал: Загрузка изображений (доступно авторизованному пользователю при наличии аутентификации). Аутентификация и авторизация (на выбор кандидата).
Сценарий работы API: Метод API принимает одно или несколько изображений и сохраняет их в папку. Для передачи использовать POST запрос с содержимым multipart/form-data. Для отправки multipart/form-data использовать REST Client (на выбор кандидата).
Дополнительные требования:
- Валидация загружаемых изображений — максимальный размер 200кб.
- Изображение должно быть сохранено с уникальным названием.
Для разработки метода использовать— python >= 3.6.5, остальное на выбор кандидата. При использовании фреймворков — использовать Django. Код проекта должен быть загружен в репозиторий (на выбор кандидата).
Используемый стек:
- Python 3
- Django Rest Framework
- PostgreSQL
- Скопируйте репозиторий
- Создайте виртальное окружение
$ python3 -m venv venv
- Активируйте виртуальное окружение
$ source venv/bin/activate
- Установите зависимости
$ pip install -r requirements.txt
- Создайте базу данных в PostgreSQL
- Подключите базу данных в
django_uploader/settings.py
- Проведите миграции
$ python3 manage.py migrate
- Создайте суперпользователя
$ python3 manage.py createsuperuser
- Запустите сервер
$ python3 manage.py runserver
- Клонируйте репозиторий
- Откройте консоль и перейдите в папку репозитория
- Соберите docker-контейнер
$ docker-compose build
- Запустите собранный контейнер
$ docker-compose up -d
- Данная команда показывает список активных контейнеров
$ docker-compose ps
- Проведите миграции
$ docker-compose exec web python3 manage.py migrate --noinput
- Создайте суперпользователя
$ docker-compose exec web python3 manage.py createsuperuser
- Данная команда показывает все установленные докер-контейнеры
$ docker-compose images
- Данная команда останавливает и удаляет все докер-контейнеры
$ docker-compose down
Используйте postman для создания запросов. (Информация не валидна, обнаружен ряд ошибок. В скором времени информация будет обновлена)
Регистрация пользователя:
- Создайте POST запрос на адрес http://127.0.0.1:8000/auth/users/
- Во вкладке body выберете тип form-data
- Укажите key - usrname, password, email, и value соответственно
Загрузка изображения
- Создайте POST запрос на адрес http://127.0.0.1:8000/upload/
- Во вкладке Authorization выберете тип Basic Auth
- Укажите username, password
- Во вкладке body выберете тип form-data
- Укажите key - image, укажите тип поля - file, выберете изображение для отправки
Просмотр загруженных изображений
- Создайте GET запрос на адрес http://127.0.0.1:8000/gallery/
- Во вкладке Authorization выберете тип Basic Auth
- Укажите username, password