Проект Database_of_reviews собирает отзывы пользователей на произведения.Произведения делятся на категории: "Категории", "Фильмы", "Музыка".Список категорий (Category) может быть расширен администратором.
- Для аутентификации используются JWT-токены.
- У неаутентифицированных пользователей доступ к API только на уровне чтения.
- Создание объектов разрешено только аутентифицированным пользователям.На прочий фунционал наложено ограничение в виде административных ролей и авторства.
- Управление пользователями.
- Получение списка всех категорий и жанров, добавление и удаление.
- Получение списка всех произведений, их добавление.Получение, обновление и удаление конкретного произведения.
- Получение списка всех отзывов, их добавление.Получение, обновление и удаление конкретного отзыва.
- Получение списка всех комментариев, их добавление.Получение, обновление и удаление конкретного комментария.
- Возможность получения подробной информации о себе и удаления своего аккаунта.
- Фильтрация по полям.
- Python 3.7
- Django 3.2
- Django Rest Framework 3.12.4
- Simple JWT
- SQLite3
-
Клонировать репозиторий:
git clone https://github.com/doroshenkokb/Database_of_reviews.git
-
Создать
.env
файл на уровне с файломdocker-compose.yaml
в директории infra с указаниме данных:- SECRET_KEY - секретный ключ Django;
- DB_ENGINE - движок базы данных (БД) postgresql:
django.db.backends.postgresql
; - DB_NAME - имя БД:
postgres
; - POSTGRES_USER - пользователь БД:
postgres
; - POSTGRES_PASSWORD - пароль рользователя БД:
postgres
; - DB_HOST - адрес удалённого сервера БД, по умолчанию:
db
; - DB_PORT - порт сервера базы данных:
5432
;
-
Создать и активировать виртуальное пространство, установить зависимости и запустить тесты:
Для Windows:
cd yamdb_final python -m venv venv source venv/Scripts/activate cd api_yamdb pip install -r requirements.txt cd .. pytest
Для Mac/Linux:
cd yamdb_final python3 -m venv venv source venv/bin/activate cd api_yamdb pip install -r requirements.txt cd .. pytest
-
Запустить контейнер Docker:
- Проверить статус Docker:
docker --version
- Запустить docker-compose:
cd infra/ docker-compose up -d
-
Выполнить миграции, создать суперпользователя и мигрировать статику:
docker-compose exec web python manage.py migrate docker-compose exec web python manage.py createsuperuser docker-compose exec web python manage.py collectstatic --no-input
-
Для запуска в виртуальном окружении, после создания и активации виртуального пространства, установки зависимостей, запустить проект локально:
Для Windows:
python manage.py runserver
Для Mac/Linux:
python3 manage.py runserver
-
Проверить доступность сервиса:
http://localhost/admin
Дорошенко Кирилл - https://github.com/doroshenkokb