Проект YaMDb собирает отзывы пользователей на произведения. Произведения делятся на категории: «Книги», «Фильмы», «Музыка».
Python 3.9.4, Django 3.1+, Django REST Framework, SQLite3, Simple JWT, Django Filter.
Создайте виртуальное окружение:
python -m venv venv
Активируйте его:
source venv/Scripts/activate
Используйте pip, чтобы установить зависимости:
pip install -r requirements.txt
После создайте в корневой директории файл с названием ".env
" и поместите в него:
SECRET_KEY=любой_секретный_ключ_на_ваш_выбор
DEBUG=False
ALLOWED_HOSTS=*
Не забудьте применить все миграции:
python manage.py migrate
И запускайте сервер:
python manage.py runserver
- Используйте shell:
python manage.py shell
- Импортируйте скрипт:
from data.import_data import import_data
- Запустите скрипт:
# Если вам нужен отчёт о каждой ошибке:
import_data(True)
# Если не нужен:
import_data()
- Заходим в shell:
python manage.py shell
- Импортируем нужные модели:
from api.models import User, Category, Comment, Genre, Review, Title
- Импортируем скрипт:
from data.import_data import create_models
- Запускаем скрипт с тремя параметрами:
file_path
— путь до вашего csv файла,
model
— класс модели из импортированных ранее,
print_errors
— нужно ли распечатать каждую ошибку подробно? (True or False
)
Пример:
create_models('data/review.csv', Review, False)
Создайте супер пользователя, обязательно укажите почту и пароль:
python manage.py createsuperuser
Отправьте POST-запрос на ссылку: http://127.0.0.1:8000/api/v1/auth/email/
— не забудьте указать в параметрах вашу почту!
Пример:
curl -X POST -F "email=ваша_почта@gmail.com" http://127.0.0.1:8000/api/v1/auth/email/
В папке ./sent_emails/
появится новое "письмо", откройте его и скопируйте код для авторизации.
Теперь отправьте POST-запрос, только с кодом на http://127.0.0.1:8000/api/v1/auth/token/
, чтобы получить токен. Пример:
curl -X POST -F "email=ваша_почта@gmail.com" -F "confirmation_code=ваш_код" http://127.0.0.1:8000/api/v1/auth/token/
Чтобы открыть документацию, запустите сервер и перейдите по ссылке:
http://127.0.0.1:8000/redoc/