API YaMDb - это программный интерфейс, предназначенный для социальной сети, которая позволяет пользователям оставлять отзывы на различные произведения.
- Произведения классифицируются по категориям, таким как «Книги», «Фильмы», «Музыка», и могут быть отнесены к жанрам из списка доступных. Добавлять произведения, категории и жанры имеет право только администратор.
- На сайте пользователи могут оставлять текстовые отзывы и оценивать произведения в диапазоне от 1 до 10. На основе пользовательских оценок вычисляется средняя оценка произведения. Пользователь может оставить только один отзыв на одно произведение. Добавлять отзывы, комментарии и оценивать произведения могут только аутентифицированные пользователи.
- Клонируем проект.
git clone [email protected]:IlyaVasilevsky47/api_yamdb.git
- Создаем и активируем виртуальное окружение.
python -m venv venv
source venv/scripts/activate
- Обновляем менеджер пакетов pip и устанавливаем зависимости из файла requirements.txt.
python -m pip install --upgrade pip
pip install -r api_yamdb/requirements.txt
- Переходим в папку и создаем базу данных.
cd api_yamdb
python manage.py migrate
- Загружаем тестовые данные в базу данных.
python manage.py database_import
- Запускаем проект.
python manage.py runserver
- Переходим в папку и создаем файл.
cd infra
touch .env
- Заходим в файл.
nano .env
- Заполняем файл.
DB_ENGINE=django.db.backends.postgresql
DB_NAME=postgres
POSTGRES_USER=postgres
POSTGRES_PASSWORD=postgres
DB_HOST=db
DB_PORT=5432
- Запускаем контейнеры.
docker-compose up -d
- Создаем базу данных.
docker-compose exec web python manage.py migrate
- Заполняем тестовыми данными базу данных.
docker-compose exec web python manage.py database_import
- Собираем всю статику.
docker-compose exec web python manage.py collectstatic --no-input
После запуска сервера локально, заходим в ReDoc по ссылке:
http://127.0.0.1:8000/redoc/
Если вы запустили сервер в контейнерах, то вам нужно перейти по этой ссылке:
http://localhost/redoc/
Имя | GitHub |
---|---|
Илья Василевсикй | ✔️ |
Игорь Белошицкий | ✔️ |
Ангелина Тингаева | ✔️ |
- Python 3.7.9
- Django 3.2.16
- Django REST Framework 3.12.4
- Simple JWT 4.8.0
- PyJWT 2.1.0