Django REST API для приложения Dordoi Association.
- Python 3.12.7
- pip
- virtualenv (рекомендуется)
- Клонируйте репозиторий:
git clone <repository-url>
cd dordoi-association-back- Создайте виртуальное окружение:
python -m venv venv
source venv/bin/activate # Linux/Mac
# или
venv\Scripts\activate # Windows- Установите зависимости:
pip install -r requirements.txt- Создайте файл
.envна основе.env.example:
cp .env.example .env- Выполните миграции:
python manage.py migrate- Создайте суперпользователя:
python manage.py createsuperuser- Запустите сервер разработки:
python manage.py runserver- Аккаунт Heroku
- Heroku CLI
- Создайте приложение Heroku:
heroku create your-app-name- Настройте переменные окружения:
heroku config:set SECRET_KEY=your-secret-key-here
heroku config:set DEBUG=False
heroku config:set ALLOWED_HOSTS=your-app-name.herokuapp.com
heroku config:set CORS_ALLOWED_ORIGINS=https://your-frontend-domain.com- Добавьте PostgreSQL addon:
heroku addons:create heroku-postgresql:hobby-dev- Задеплойте приложение:
git push heroku master- Выполните миграции на Heroku:
heroku run python manage.py migrate- Создайте суперпользователя:
heroku run python manage.py createsuperuser- Health Check:
https://your-app-name.herokuapp.com/health/ - API Docs:
https://your-app-name.herokuapp.com/swagger/ - Admin Panel:
https://your-app-name.herokuapp.com/admin/
dordoi-association-back/
├── core/ # Основные настройки Django
│ ├── settings.py # Настройки проекта
│ ├── urls.py # URL конфигурация
│ ├── views.py # Общие views
│ └── wsgi.py # WSGI конфигурация
├── about_us/ # Приложение "О нас"
├── presscentre/ # Приложение пресс-центра
├── partners/ # Приложение партнеров
├── requirements.txt # Зависимости Python
├── Procfile # Конфигурация Heroku
├── runtime.txt # Версия Python для Heroku
├── release.py # Скрипт релиза
└── .env.example # Пример переменных окружения
GET /api/about-us/facts/?language=ru|en|kg- ФактыGET /api/about-us/details/?language=ru|en|kg- Детали фактов
GET /api/presscentre/news/- НовостиGET /api/presscentre/news/{id}/- Детали новости
GET /api/partners/- Партнеры
GET /api/schema/- OpenAPI схемаGET /swagger/- Swagger UIGET /redoc/- ReDoc
| Переменная | Описание | Значение по умолчанию |
|---|---|---|
SECRET_KEY |
Секретный ключ Django | - |
DEBUG |
Режим отладки | False |
ALLOWED_HOSTS |
Разрешенные хосты | localhost,127.0.0.1 |
DATABASE_URL |
URL базы данных | SQLite локально, PostgreSQL на Heroku |
CORS_ALLOWED_ORIGINS |
Разрешенные origins для CORS | http://localhost:3000,http://localhost:5173 |
BUCKETEER_AWS_ACCESS_KEY_ID |
AWS Access Key ID для S3 | - |
BUCKETEER_AWS_REGION |
AWS регион для S3 | - |
BUCKETEER_AWS_SECRET_ACCESS_KEY |
AWS Secret Access Key для S3 | - |
BUCKETEER_BUCKET_NAME |
Имя S3 бакета | - |
python manage.py makemigrations
python manage.py migratepython manage.py startapp app_namepython manage.py testПроект поддерживает два режима хранения медиа файлов:
По умолчанию файлы хранятся локально в папке mediafiles/.
При наличии переменных окружения для AWS S3, все медиа файлы автоматически сохраняются в облаке.
Настройка S3:
- Добавьте Bucketeer addon:
heroku addons:create bucketeer - Или установите переменные вручную:
heroku config:set BUCKETEER_AWS_ACCESS_KEY_ID=... heroku config:set BUCKETEER_AWS_REGION=... heroku config:set BUCKETEER_AWS_SECRET_ACCESS_KEY=... heroku config:set BUCKETEER_BUCKET_NAME=...
Преимущества S3:
- ✅ Надежное хранение
- ✅ Автоматическое масштабирование
- ✅ Доступность файлов через CDN
- ✅ Резервное копирование