Проект YaMDb собирает отзывы пользователей на произведения.
Благодаря этому проекту можно:
- оставлять к произведениям текстовые отзывы
- ставить произведению оценку
- комментировать отзывы других пользователей
- получить список всех произведений, категорий, жанров, комментариев, отзывов
- Python 3.7
- Django REST framework 3.12
- Simple JWT-аутентификация с реализацией через код подтверждения
- Docker
- Gunicorn
- nginx
- PostgreSQL
- GIT
Для развертывания проекта используется виртуальная среда Docker и Docker-compose. Docker "упаковывает" приложение и все его зависимости в контейнер и может быть перенесен при использовании на месте ОС Linux. Docker-compose это инструмент для запуска многоконтейнерных приложений.
git clone [email protected]:Olesyacur/infra_sp2.git
DB_ENGINE= # указываем базу данных, с которой будем работать DB_NAME= # имя базы данных POSTGRES_USER= # логин для подключения к базе данных POSTGRES_PASSWORD= # пароль для подключения к БД (установите свой) DB_HOST= # название сервиса (контейнера) DB_PORT= # порт для подключения к БД
- Переходим в папку с файлом docker-compose.yaml:
cd infra/
- Собираем контейнеры (infra_db_1, infra_web_1, infra_nginx_1):
docker-compose up -d --build
- Выполняем миграции
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
docker-compose exec web python manage.py loaddata fixtures.json
Теперь проект доступен по адресу https://localhost/admin. Можно войти под логином и паролем суперпользователя и наполнять базу данных.
Для создания дампа данных из БД
docker-compose exec web python manage.py dumpdata > dump.json
Просмотр запущенных контейнеров
docker stats
Остановка и удаление контейнеров, томов, образов
docker-compose down -v
GET https://127.0.0.1:8000/api/v1/categories/
[
{
"count": 3,
"next": null,
"previous": null,
"results": [
{
"name": "Книга",
"slug": "book"
},
{
"name": "Музыка",
"slug": "music"
},
{
"name": "Фильм",
"slug": "movie"
}
]
}
]
GET https://127.0.0.1:8000/api/v1/genres/?search=Rock
[
{
"count": 1,
"next": null,
"previous": null,
"results": [
{
"name": "Rock-n-roll",
"slug": "rock-n-roll"
}
]
}
]
Студенты Я.Практикум - Олеся Чурсина, Денис Костив, Юлия Орлова