/Admin_panel_sprint_2-1

Проектная работа на второй спринт курса Middle Python-разработчик. Финальная часть панели администратора на Django и задачи по DevOps

Primary LanguagePython

Использовал wemake-django-template, чуть-чуть переделал под себя и упростил

Локальная разработка

Требуется poetry

  1. Установить зависимости и создать .env файл на основе .env.template:
$ make install
  1. Запустить приложение локально:
$ make runserver
  1. Запустить фейковую миграцию для movies и другие инишиал миграции:
$ make fakemigrate
  1. Создать суперюзера для админки:
$ make createsuperuser

Разработка в докере (dev версия)

  1. Запустить приложение:
$ make up-dev
  1. Запустить фейковую миграцию для movies и другие инишиал миграции:
$ make dev-fakemigrate
  1. Создать суперюзера для админки:
$ make dev-createsuperuser
  1. Посмотреть текущие логи:
$ make dev-logs
  1. Остановить приложение:
$ make down

Prod версия

  1. Запустить приложение:
$ make up-prod
  1. Запустить фейковую миграцию для movies и другие инишиал миграции:
$ make prod-fakemigrate
  1. Создать суперюзера для админки:
$ make prod-createsuperuser
  1. Посмотреть текущие логи:
$ make prod-logs
  1. Остановить приложение:
$ make down

Техническое задание

В качестве второго задания предлагаем расширить проект «Панель администратора»: запустить приложение через WSGI/ASGI, настроить отдачу статических файлов через Nginx и подготовить инфраструктуру для работы с Docker. Для этого перенесите в репозиторий код, который вы написали в первом спринте, и выполните задания из папки tasks.

Задание предполагает выполнение трёх последовательных подзадач:

  1. Реализовать API на Django, который возвращает список фильмов.
  2. Запустить Django-приложение в Docker.
  3. Настроить работу приложения с помощью Nginx + uWSGI.

Для каждого задания есть небольшая теоретическая часть, которая поможет разобраться с необходимыми деталями для решения задач. Подзадачи нужно сдавать все сразу, чтобы сократить количество циклов проверки вашего кода. Так вы сможете получить обратную связь на всю вашу работу сразу.

Используемые технологии

  • Приложение запускается под управлением сервера WSGI/ASGI.
  • Для отдачи статических файлов используется Nginx.
  • Виртуализация осуществляется в Docker.

Основные компоненты системы

  1. Cервер WSGI/ASGI — сервер с запущенным приложением.
  2. Nginx — прокси-сервер, который является точкой входа для web-приложения.
  3. PostgreSQL — реляционное хранилище данных.

Схема сервиса

all

Требования к проекту

  1. Приложение должно быть запущено через WSGI/ASGI.
  2. Все компоненты системы находятся в Docker.
  3. Отдача статических файлов осуществляется за счёт Nginx.

Рекомендации к проекту

  1. Для работы с WSGI/ASGI-сервером база данных использует специального юзера.
  2. Для взаимодействия между контейнерами используйте docker compose.