Данный проект представляет собой веб-приложение на Django, разработанное поэтапно. В нём реализованы различные функции и техники с использованием Django, Django REST Framework, PostgreSQL и других технологий. Ниже представлены ключевые этапы разработки и реализованные возможности.
Сначала я настроил базовые вещи для блога:
- Сделал модели данных (схемы базы данных).
- Настроил страницы для постов, шаблоны и URL-адреса.
- Реализовал пагинацию, чтобы можно было удобно листать посты.
- Добавил формы, чтобы пользователи могли рекомендовать посты по почте и оставлять комментарии.
Дальше я расширил функционал:
- Подключил систему тегов, чтобы к каждому посту можно было добавлять метки.
- Реализовал рекомендованные посты с помощью запросов QuerySet.
- Настроил шаблонные теги и фильтры, чтобы удобнее выводить данные.
- Добавил карту сайта для поисковых систем.
- Сделал поиск по сайту, используя полнотекстовый поиск PostgreSQL.
Чтобы пользователи могли регистрироваться и настраивать свои профили, я:
- Настроил регистрацию, авторизацию, восстановление пароля и сессии.
- Добавил возможность загрузки аватаров и заполнения информации "О себе".
- Подключил авторизацию через соцсети (Google, GitHub) с помощью OAuth 2.0.
- Немного освежил внешний вид блога, используя Bootstrap 5.
Последним шагом было создание API с использованием Django REST Framework:
- Реализовал сериализаторы и представления для работы с данными через API.
- Добавил аутентификацию и разрешения для ограничения доступа к данным.
- Сделал фильтрацию, поиск и пагинацию для API.
- Настроил документацию и схему API с помощью библиотеки drf-spectacular.
- Django
- Django REST Framework
- PostgreSQL
- Bootstrap 5
- OAuth 2.0 (Google, GitHub)
- drf-spectacular
- django-taggit
- django-filter
-
Клонируйте репозиторий:
git clone https://github.com/your-username/django_site_blog.git
-
Перейдите в папку проекта:
cd django_site_blog -
Установите виртуальное окружение и активируйте его:
python -m venv env source env/bin/activate # Для Linux и macOS env\Scripts\activate # Для Windows
-
Установите зависимости:
pip install -r requirements.txt
-
Откройте файл .env и заполнить его своими данными
SECRET_KEY = 'django-insecure-xxxxxxxxx' GITHUB_KEY = 'xxxxxxxxx' GITHUB_SECRET = 'xxxxxxxxxxxxxxxxxx' GOOGLE_KEY = 'xxxxxxxxxxxxxxxxxxxxxxxxxxx' GOOGLE_SECRET = 'xxxxxxxxxxxxxxxxxx'
-
Выполните миграции:
python manage.py migrate
-
Запустите сервер разработки:
python manage.py runserver
-
Доступ к приложению:
После завершения всех вышеуказанных шагов, приложение будет доступно по адресу http://127.0.0.1:8000.