Skip to content

ilinNE/exam

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Описание

Небольшое Django-приложение birthdays показывает ближайший день рождения сотрудника и транслирует обновления по WebSocket (Django Channels). В составе проектной конфигурации присутствуют PostgreSQL, Redis, Nginx и Docker Compose.

Стек

  • Django 4.2
  • Channels 4 + Daphne
  • PostgreSQL, Redis
  • Nginx
  • Docker / Docker Compose

Локальный запуск (без Docker)

  1. Создать и активировать виртуальное окружение.
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt
  1. Поднять Redis локально (например, через Docker):
docker run --rm -p 6379:6379 redis:7-alpine
  1. Настроить переменные окружения (необязательно). Можно создать файл .env в корне:
SECRET_KEY=django-insecure-default-key
DEBUG=1
ALLOWED_HOSTS=localhost,127.0.0.1
POSTGRES_DB=django_db
POSTGRES_USER=django_user
POSTGRES_PASSWORD=password
DB_HOST=localhost
DB_PORT=5432
REDIS_HOST=127.0.0.1
REDIS_PORT=6379
  1. Выполнить миграции и собрать статику:
cd proj
python manage.py migrate
python manage.py collectstatic --noinput
  1. Запустить дев-сервер:
python manage.py runserver
  1. Открыть приложение: http://127.0.0.1:8000/

Запуск через Docker Compose

  1. Создать файл .env в корне (минимально):
SECRET_KEY=django-insecure-default-key
DEBUG=1
ALLOWED_HOSTS=localhost,127.0.0.1
POSTGRES_DB=django_db
POSTGRES_USER=django_user
POSTGRES_PASSWORD=password
DB_HOST=db
DB_PORT=5432
REDIS_HOST=redis
REDIS_PORT=6379
  1. Собрать и запустить:
docker compose up --build
  1. Открыть: http://localhost/

Полезные команды

  • Создать суперпользователя:
cd proj
python manage.py createsuperuser
  • Применить миграции:
python manage.py migrate
  • Собрать статику:
python manage.py collectstatic --noinput

Структура проекта (основное)

  • proj/birthdays/ — приложение (модели, вьюхи, утилиты, WebSocket-консумер)
  • proj/proj/settings.py — конфигурация Django/Channels
  • docker-compose.yaml, Dockerfile, nginx.conf — инфраструктура
  • requirements.txt — зависимости
  • staticfiles/, media/ — статика и медиа (игнорируются в гите)

Примечания

  • По умолчанию проект настроен на PostgreSQL; для локального теста можно переключиться на SQLite, изменив DATABASES в proj/proj/settings.py.
  • Для корректной работы WebSocket используется Redis (настройки CHANNEL_LAYERS).

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors