Blog Web App — это современное веб-приложение на Django, позволяющее создавать 📝, редактировать ✏️ и просматривать 👀 блог-посты с безопасной аутентификацией через JWT-токены.
- 📝 Создание постов: авторизированные пользователи могут добавлять и редактировать свои посты.
- 👥 Чтение постов: все пользователи могут просматривать записи.
- 🔐 Авторизация через JWT: безопасная аутентификация с использованием Access и Refresh токенов (Algorithm RS256).
- Backend: Django, Django REST Framework
- Аутентификация: JWT (
djangorestframework-simplejwt
) - База данных: PostgreSQL (или SQLite для локальной разработки)
- Кэширование: Django Cache (опционально 🚀 для ускорения работы)
git clone https://github.com/RustamovAkrom/Blog-Web-APP.git
cd Blog-Web-APP
python -m venv venv
source venv/bin/activate # для Linux/macOS
venv\Scripts\activate # для Windows
pip install -r requirements.txt
Создайте файл .env
в корне проекта и укажите настройки:
SECRET_KEY=<your django secret key>
DEBUG=True
ALLOWED_HOSTS=localhost,127.0.0.1
DJANGO_SETTINGS_MODULE=core.settings.development
PRIVATE_KEY_PATH=security_settings/private_key.pem
PUBLIC_KEY_PATH=security_settings/public_key.pem
DATABASE_ENVIRON=sqlite
DATABASE_NAME=<your database name>
DATABASE_USER=<your database user>
DATABASE_PASSWORD=<your database password>
DATABASE_HOST=localhost
DATABASE_PORT=5432
ADMIN_USERNAME=admin
ADMIN_PASSWORD=password
[email protected]
JWT с алгоритмом RS256 требует приватный и публичный ключи.
👉 Подробная инструкция: docs/generate-rsa-keys-for-simple-jwt.md
python manage.py migrate
python manage.py createadmin
python manage.py runserver
Теперь приложение доступно по адресу:
👉 http://127.0.0.1:8000
После входа пользователь получает два токена:
- 🔑 Access Token — доступ к защищённым маршрутам
- ♻️ Refresh Token — обновление Access Token
Пример использования:
Authorization: Bearer <access_token>
apps/users
— управление пользователями и аутентификациейapps/blog
— блог-постыmiddleware
— JWT-middlewaresettings
— настройки Django, базы данных и кэша
Для ускорения работы Blog App можно использовать кэширование JWT-токенов.
Проект распространяется по лицензии MIT License.
Подробная документация доступна здесь:
👉 Documentation