Собирает отзывы пользователей на различные произведения в категориях: «Книги», «Фильмы», «Музыка». Список категорий может быть расширен администратором. Также произведению может быть присвоен жанр из списка предустановленных, либо добавленный администратором. Пользователи оставляют к произведениям отзывы и ставят оценку; из пользовательских оценок формируется рейтинг произведения. На одно произведение пользователь может оставить только один отзыв. Взаимодействие с сервисом реализовано с помщью API.
- Python 3.9.9
- Django 2.2.19
- Django Rest Framework 3.12.4
- Simple JWT 5.0.0
- Docker
Убедитесь, что у вас установлено приложение Docker.
Клонировать репозиторий:
git clone https://github.com/AntonLukin1986/infra_sp2
Перейти в директорию с файлом docker-compose.yaml:
cd infra_sp2/infra
Создать .env файл по следующему шаблону:
KEY=1a2b3c # секретный ключ джанго-проекта (установите свой)
DB_ENGINE=django.db.backends.postgresql # указываем, что работаем с postgresql
DB_NAME=postgres # имя базы данных
POSTGRES_USER=postgres # логин для подключения к базе данных
POSTGRES_PASSWORD=postgres # пароль для подключения к БД (установите свой)
DB_HOST=db # название сервиса (контейнера)
DB_PORT=5432 # порт для подключения к БД
ALLOWED_HOSTS=localhost web (добавьте необходимые хосты через пробел)
Выполнить команду:
sudo docker-compose up -d
Далее необходимо выполнить миграции, создать суперпользователя и собрать статику, выполнив по очереди следующие команды:
sudo docker-compose exec web python manage.py migrate
sudo docker-compose exec web python manage.py createsuperuser
sudo docker-compose exec web python manage.py collectstatic --no-input
Проект имеет возможность с помощью специальной команды наполнить БД данными из файлов *.csv Данный способ хорош тем, что данные для заполнения можно подготовить даже в приложении "Блокнот", а наполнение осуществляется одной командой в консоли терминала.
Для начала необходимо проверить, чтобы имена csv-файлов с данными были следующими:
category.csv
comments.csv
genre_title.csv
genre.csv
reviews.csv
titles.csv
users.csv
Скрипт чувствителен к данным именам, но при необходимости можно поменять их в самом скрипте, в значениях словаря 'paths'. Располагаться файлы должны в директории static/data/. Для корректной работы БД необходимо убедиться, что все поля таблиц заполнены.
Для заполнения БД выполните команду:
sudo docker-compose exec web python manage.py csv_to_base
Сообщение 'Успешно! Данные из *.csv теперь в базе.' означает, что данные перенесены успешно.
Файл со скриптом находится в директории reviews/management/commands/
Абрамсон Арсений ArS181
Антон Лукин AntonLukin1986
Эльвир Давлетгареев elvir906
Ознакомиться с запущенным проектом можно по ссылкам: админка, документация