Имеется возможность подписываться на блоги пользователей и делать посты. Пользователи добавляются ТОЛЬКО через админку!
Задание можно посмотреть по этой ссылке click
Директория | Описание |
---|---|
infra |
Файлы для запуска с помощью Docker, настройки Nginx |
src/backend |
Код Django приложения |
Route | Method | Описание |
---|---|---|
{HOST}/obtain-token/ |
POST |
Получение токена пользователя |
{HOST}/blogs/<blog_id:int>/follow/ |
POST |
Подписка на блог |
{HOST}/blogs/<blog_id:int>/unfollow/ |
DELETE |
Отписка от блога |
{HOST}/news/ |
GET |
Новостная лента |
{HOST}/news/ |
POST |
Сделать пост |
{HOST}/news/<post_id:int>/ |
DELETE |
Удалить пост |
{HOST}/news/<post_id:int>/send_to_read/ |
POST |
Отправить в "прочтенные" |
-
Python 3.12
Убедитесь, что у вас установлена нужная версия Python или активирована в pyenv. -
Poetry
Зависимости и пакеты управляются через poetry. Убедитесь, что poetry установлен на вашем компьютере и ознакомьтесь с документацией.
Установка зависимостейpoetry install
Также будет создано виртуальное окружение, если привычнее видеть его в директории проекта, то используйте настройку
virtualenvs.in-project
-
Docker
-
pre-commit (если хотите поиграться с проектом) Документация
При каждом коммите выполняются хуки (автоматизации) перечисленные в .pre-commit-config.yaml. Если не понятно какая ошибка мешает сделать коммит можно запустить хуки вручную и посмотреть ошибки:pre-commit run --all-files
Для упрощения можно установить
pre-commit
pre-commit install
Создаём .env
файл в папке infra
и заполняем его по
образцу .env.example
.
Переходим в директорию infra/
cd infra/
Поднимаем контейнеры
docker-compose -f docker-compose.yml up -d
Используйте команду ниже и следуйте инструкциям в терминале (перед этим откройте новое окно)
docker exec -it backend python manage.py createsuperuser
Устанавливаем зависимости
Создаём .env
файл в корневой директории проекта и заполняем его по
образцу .env.example
Переходим в директорию src/backend/
cd src/backend/
Применяем миграции
python manage.py migrate
Запускаем development-сервер Django
python manage.py runserver