Files
Quiz-for-Mont/README_RU.md

3.5 KiB
Raw Permalink Blame History

Опросник (Quiz for Mont)

Веб‑приложение на Flask + Peewee для проведения опросов и сравнения платформ.

Запуск

Есть два основных способа запуска: локально с SQLite или через Docker Compose с Postgres.

1) Локально (SQLite)

По умолчанию приложение пытается подключиться к Postgres. Если он недоступен, код автоматически переключится на SQLite. Чтобы явно форсировать SQLite:

  • PowerShell (Windows):
$env:USE_SQLITE = '1'
$env:SQLITE_PATH = 'survey.db'   # необязательно, по умолчанию survey.db
python main.py                    # или flask --app main run

2) Docker Compose (Postgres)

В проекте есть docker-compose.yml c сервисами db (Postgres) и flask-app.

docker-compose up -d

После поднятия контейнеров приложение доступно на http://localhost:3333.

Переменные окружения для подключения к Postgres уже прописаны в docker-compose.yml:

  • POSTGRES_HOST=db
  • POSTGRES_DB=survey
  • POSTGRES_USER=servey
  • POSTGRES_PASSWORD=utOgbZ09servey

База данных и фолбэк

В models.py используется следующая логика инициализации БД:

  • Если установлено USE_SQLITE=1, используется SQLite (файл survey.db).
  • Иначе выполняется попытка подключения к Postgres. Если соединение не удалось (например, приложение запущено вне Docker и хост db недоступен), приложение автоматически переключается на SQLite.

При первом запуске таблицы создаются автоматически.

Миграция данных из SQLite в Postgres

В проекте есть скрипт migrate_sqlite_to_postgres.py (используйте его при необходимости переноса данных). Перед миграцией убедитесь, что Postgres доступен и параметры подключения верны.

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

  • Установка зависимостей:
pip install -r requirements.txt
  • Запуск Flask локально:
flask --app main run --debug

Переменные окружения

  • USE_SQLITE — если 1, принудительно использовать SQLite.
  • SQLITE_PATH — путь к файлу базы SQLite (по умолчанию survey.db).
  • POSTGRES_HOST — хост Postgres (по умолчанию db).
  • POSTGRES_PORT — порт Postgres (по умолчанию 5432).
  • POSTGRES_DB — имя БД (по умолчанию survey).
  • POSTGRES_USER — пользователь Postgres (по умолчанию servey).
  • POSTGRES_PASSWORD — пароль Postgres.

Замечания по безопасности

Текущие значения по умолчанию для доступа к Postgres предназначены для локальной разработки и Docker. Для продакшена обязательно замените пароли и настройте защищённые секреты.