Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up

yamdb_final

NotificationsYou must be signed in to change notification settings

alkh0304/yamdb_final

Repository files navigation

Марк Мазуров

Статус проекта:

example workflow

Описание проетка:

Проект YaMDb собирает отзывы пользователей на различные произведения.

Технологии и библиотеки:

Как запустить проект:

  • Клонировать репозиторий и перейти в него в командной строке

  • Создайте .env файл в папке infra/ и заполните следующие переменные:

DB_ENGINE=django.db.backends.postgresql
DB_NAME= # имя БД
POSTGRES_USER= # логин для подключения к БД
POSTGRES_PASSWORD= # пароль для подключения к БД
DB_HOST=db
DB_PORT=5432
  • Используя docker-compose, соберите образ в папке infra:
cd infra
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

Регистрация пользователей

Пользователь отправляет POST-запрос на добавление нового пользователя с параметрамиemail иusername на эндпоинт/api/v1/auth/signup/.YaMDB отправляет письмо с кодом подтверждения (confirmation_code) на адресemail.Пользователь отправляет POST-запрос с параметрамиusername иconfirmation_code на эндпоинт/api/v1/auth/token/, в ответе на запрос ему приходит token (JWT-токен).При желании пользователь отправляет PATCH-запрос на эндпоинт/api/v1/users/me/ и заполняет поля в своём профайле (описание полей — в документации).

Пользовательские роли

  • Аноним — может просматривать описания произведений, читать отзывы и комментарии.
  • Аутентифицированный пользователь (user) — может читать всё, как и Аноним, может публиковать отзывы и ставить оценки произведениям (фильмам/книгам/песенкам), может комментировать отзывы; может редактировать и удалять свои отзывы и комментарии, редактировать свои оценки произведений. Эта роль присваивается по умолчанию каждому новому пользователю.
  • Модератор (moderator) — те же права, что и у Аутентифицированного пользователя, плюс право удалять и редактировать любые отзывы и комментарии.
  • Администратор (admin) — полные права на управление всем контентом проекта. Может создавать и удалять произведения, категории и жанры. Может назначать роли пользователям.
  • Суперюзер Django должен всегда обладать правами администратора, пользователя с правамиadmin. Даже если изменить пользовательскую роль суперюзера — это не лишит его прав администратора. Суперюзер — всегда администратор, но администратор — не обязательно суперюзер.

Самостоятельная регистрация новых пользователей

Пользователь отправляет POST-запрос с параметрамиemail иusername на эндпоинт/api/v1/auth/signup/.Сервис YaMDB отправляет письмо с кодом подтверждения (confirmation_code) на указанный адрес email.Пользователь отправляет POST-запрос с параметрамиusername иconfirmation_codeна эндпоинт/api/v1/auth/token/`, в ответе на запрос ему приходит token (JWT-токен).

В результате пользователь получает токен и может работать с API проекта, отправляя этот токен с каждым запросом.После регистрации и получения токена пользователь может отправить PATCH-запрос на эндпоинт/api/v1/users/me/ и заполнить поля в своём профайле (описание полей — в документации).

Создание пользователя администратором

Пользователя может создать администратор — через админ-зону сайта или через POST-запрос на специальный эндпоинтapi/v1/users/ (описание полей запроса для этого случая — в документации). В этот момент письмо с кодом подтверждения пользователю отправлять не нужно.После этого пользователь должен самостоятельно отправить свойemail иusername на эндпоинт/api/v1/auth/signup/ , в ответ ему должно прийти письмо с кодом подтверждения.Далее пользователь отправляет POST-запрос с параметрамиusername иconfirmation_code на эндпоинт/api/v1/auth/token/, в ответе на запрос ему приходит token (JWT-токен), как и при самостоятельной регистрации.

Ресурсы API YaMDb

  • Ресурсauth: аутентификация.
  • Ресурсusers: пользователи.
  • Ресурсtitles: произведения, к которым пишут отзывы (определённый фильм, книга или песенка).
  • Ресурсcategories: категории (типы) произведений («Фильмы», «Книги», «Музыка»).
  • Ресурсgenres: жанры произведений. Одно произведение может быть привязано к нескольким жанрам.
  • Ресурсreviews: отзывы на произведения. Отзыв привязан к определённому произведению.
  • Ресурсcomments: комментарии к отзывам. Комментарий привязан к определённому отзыву.

Связанные данные и каскадное удаление

При удалении объекта пользователя User удаляются все отзывы и комментарии этого пользователя (вместе с оценками-рейтингами).При удалении объекта произведения Title удаляются все отзывы к этому произведению и комментарии к ним.При удалении объекта отзыва Review удаляются все комментарии к этому отзыву.При удалении объекта категории Category остаются связанные с этой категорией произведения.При удалении объекта жанра Genre остаются связанные с этим жанром произведения.

Authentication SimpleJWT

Используется аутентификация с использованием JWT-токенов

KeyValue
AuthorizationBearertoken

Releases

No releases published

Packages

No packages published

Languages


[8]ページ先頭

©2009-2025 Movatter.jp