Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/sergeimischenko/django_site_blog

Данный проект представляет собой веб-приложение на Django, разработанное поэтапно. В нём реализованы различные функции и техники с использованием Django, Django REST Framework, PostgreSQL и других технологий
https://github.com/sergeimischenko/django_site_blog

api blog bootstrap5 django django-rest-framework oauth2 postgresql python traning

Last synced: 5 days ago
JSON representation

Данный проект представляет собой веб-приложение на Django, разработанное поэтапно. В нём реализованы различные функции и техники с использованием Django, Django REST Framework, PostgreSQL и других технологий

Awesome Lists containing this project

README

        

Проект блога на Django

Данный проект представляет собой веб-приложение на Django, разработанное поэтапно. В нём реализованы различные функции и техники с использованием Django, Django REST Framework, PostgreSQL и других технологий. Ниже представлены ключевые этапы разработки и реализованные возможности.

Содержание

1. [Основы блога](#основы-блога)
2. [Теги, поиск и SEO](#теги-поиск-и-seo)
3. [Пользователи и профили](#пользователи-и-профили)
4. [API для блога](#api-для-блога)

---

### Основы блога

Сначала я настроил базовые вещи для блога:

- Сделал модели данных (схемы базы данных).
- Настроил страницы для постов, шаблоны и URL-адреса.
- Реализовал пагинацию, чтобы можно было удобно листать посты.
- Добавил формы, чтобы пользователи могли рекомендовать посты по почте и оставлять комментарии.

### Теги, поиск и SEO

Дальше я расширил функционал:

- Подключил систему тегов, чтобы к каждому посту можно было добавлять метки.
- Реализовал рекомендованные посты с помощью запросов QuerySet.
- Настроил шаблонные теги и фильтры, чтобы удобнее выводить данные.
- Добавил карту сайта для поисковых систем.
- Сделал поиск по сайту, используя полнотекстовый поиск PostgreSQL.

### Пользователи и профили

Чтобы пользователи могли регистрироваться и настраивать свои профили, я:

- Настроил регистрацию, авторизацию, восстановление пароля и сессии.
- Добавил возможность загрузки аватаров и заполнения информации "О себе".
- Подключил авторизацию через соцсети (Google, GitHub) с помощью OAuth 2.0.
- Немного освежил внешний вид блога, используя Bootstrap 5.

### API для блога

Последним шагом было создание 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

Установка и запуск

1. **Клонируйте репозиторий:**
```bash
git clone https://github.com/your-username/django_site_blog.git
```

2. **Перейдите в папку проекта:**
```bash
cd django_site_blog
```

3. **Установите виртуальное окружение и активируйте его:**
```bash
python -m venv env
source env/bin/activate # Для Linux и macOS
env\Scripts\activate # Для Windows
```

4. **Установите зависимости:**
```bash
pip install -r requirements.txt
```

5. **Откройте файл .env и заполнить его своими данными**
```env
SECRET_KEY = 'django-insecure-xxxxxxxxx'

GITHUB_KEY = 'xxxxxxxxx'
GITHUB_SECRET = 'xxxxxxxxxxxxxxxxxx'

GOOGLE_KEY = 'xxxxxxxxxxxxxxxxxxxxxxxxxxx'
GOOGLE_SECRET = 'xxxxxxxxxxxxxxxxxx'
```

6. **Выполните миграции:**
```bash
python manage.py migrate
```

7. **Запустите сервер разработки:**
```bash
python manage.py runserver
```

8. **Доступ к приложению:**

После завершения всех вышеуказанных шагов, приложение будет доступно по адресу http://127.0.0.1:8000.