Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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 и других технологий
- Host: GitHub
- URL: https://github.com/sergeimischenko/django_site_blog
- Owner: SergeiMischenko
- Created: 2024-09-11T10:49:54.000Z (5 months ago)
- Default Branch: master
- Last Pushed: 2024-09-25T09:01:04.000Z (4 months ago)
- Last Synced: 2024-11-23T15:33:16.832Z (2 months ago)
- Topics: api, blog, bootstrap5, django, django-rest-framework, oauth2, postgresql, python, traning
- Language: Python
- Homepage:
- Size: 95.7 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
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.