Проект YaMDb (REST API) собирает отзывы пользователей на различные произведения.
Реализовано на Djangorestframework 3.12.4
Аутентификация на основе JWT
. Читать контент могут все, вносить и изменять только аутентифицированные пользователи.
Предоставляет ответы от сервера в формате JSON для последующей сериалиализации на стороне фронта.
Это первый совместный проект, было сложно но интересно.
git clone git@github.com:KitKat-ru/infra_sp2.git
SECRET_KEY=... (ключ к Джанго проекту)
DB_ENGINE=django.db.backends.postgresql (указываем, что работаем с postgresql)
DB_NAME=postgres (имя базы данных)
POSTGRES_USER=... (логин для подключения к базе данных)
POSTGRES_PASSWORD=... (пароль для подключения к БД (установите свой)
DB_HOST=db (название сервиса (контейнера)
DB_PORT=5432 (порт для подключения к БД)
cd infra_sp2/infra/
Установите Docker и Docker-compose. Запустите сборку образов:
sudo docker-compose up
sudo docker-compose up -d --build
sudo docker-compose exec python manage.py makemigrates
sudo docker-compose exec python manage.py migrate
sudo docker-compose exec python manage.py createsuperuser
sudo docker-compose exec python manage.py collectstatic
sudo docker cp fixtures.json <CONTAINER ID - infra_web>:/app
sudo docker exec -it <CONTAINER ID - infra_web> bash
python3 manage.py shell
# выполнить в открывшемся терминале:
>>> from django.contrib.contenttypes.models import ContentType
>>> ContentType.objects.all().delete()
>>> quit()
python manage.py loaddata fixtures.json
- Пользователь отправляет POST-запрос на добавление нового пользователя с параметрами
email
иusername
на эндпоинт/api/v1/auth/signup/
. - YaMDB отправляет письмо с кодом подтверждения
confirmation_code
на адресemail
. В проекте реализован бэкенд почтового сервиса, папка -sent_emails
.
sudo docker-compose exec web bash
cd send_emails
cat "файл с почтой" - копируем confirmation_code
- Пользователь отправляет POST-запрос с параметрами
username
иconfirmation_code
на эндпоинт/api/v1/auth/token/
, в ответе на запрос ему приходит token (JWT-токен). - При желании пользователь отправляет PATCH-запрос на эндпоинт
/api/v1/users/me/
и заполняет поля в своём профайле.
http://127.0.0.1:8000/redoc/
sudo docker pull taeray/infra_web:v.1.2