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-APPpython -m venv venv
source venv/bin/activate # для Linux/macOS
venv\Scripts\activate # для Windowspip 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
ADMIN_EMAIL=admin@example.comJWT с алгоритмом RS256 требует приватный и публичный ключи.
👉 Подробная инструкция: docs/generate-rsa-keys-for-simple-jwt.md
python manage.py migrate
python manage.py createadminpython 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
