Files
av_Site_repetitor/README.md
T
2026-08-02 22:54:13 +04:00

7.4 KiB
Raw Blame History

Анастасия Панкратенкова

Персональный сайт преподавателя математики и физики с записью на консультацию по подготовке к ОГЭ и ЕГЭ.

Статус проекта Python Flask SQLite

О проекте

Сайт-визитка для Анастасии Викторовны Панкратенковой — преподавателя математики и физики.

На сайте можно:

  • познакомиться с преподавателем, образованием и опытом;
  • узнать о подготовке по математике и физике;
  • понять, как проходят занятия;
  • оставить заявку на консультацию;
  • выбрать предмет, экзамен и формат занятий.

Заявки сохраняются в локальную базу данных SQLite. Подключение уведомлений в Telegram или по электронной почте можно добавить следующим этапом.

Технологии

Технология Назначение
Python 3.10+ Основной язык приложения
Flask 3.x Веб-сервер и маршрутизация
Jinja2 Рендеринг HTML-шаблонов
SQLite Хранение заявок на консультацию
HTML5 Структура страниц
CSS3 Адаптивный визуальный стиль
JavaScript Небольшие интерактивные эффекты

Структура проекта

anastasia_viktorovna/
├── app.py                    # Flask-приложение и обработка заявок
├── requirements.txt          # Зависимости проекта
├── .env.example              # Пример переменных окружения
├── templates/
│   ├── index.html            # Главная страница
│   ├── success.html          # Страница успешной отправки
│   ├── admin_login.html      # Вход в админ-панель
│   └── admin.html             # Список заявок
├── static/
│   ├── css/styles.css        # Стили и адаптивная вёрстка
│   ├── js/main.js            # Клиентские эффекты
│   └── images/teacher.jpg    # Фотография преподавателя
└── consultations.db          # Создаётся автоматически при запуске

Запуск в PyCharm

1. Открыть проект

Откройте в PyCharm папку проекта:

C:\Users\greyjoy\PycharmProjects\anastasia_viktorovna

2. Выбрать интерпретатор

В PyCharm выберите интерпретатор виртуального окружения:

.venv\Scripts\python.exe

Если виртуальное окружение ещё не создано, выполните в терминале PyCharm:

py -3.10 -m venv .venv
.venv\Scripts\Activate.ps1

3. Установить зависимости

python -m pip install -r requirements.txt

4. Запустить сайт

python app.py

После запуска откройте в браузере:

http://127.0.0.1:5000

Остановить сервер можно сочетанием Ctrl+C в терминале.

Как работает форма

  1. Посетитель заполняет имя, контакт, предмет, экзамен и формат занятий.
  2. Flask проверяет обязательные поля.
  3. Заявка записывается в таблицу consultation_requests файла consultations.db.
  4. Пользователь видит страницу успешной отправки.

При обновлении существующего проекта недостающие поля базы добавляются автоматически. Старые заявки получают статус «Новая» и значение времени «Гибко».

В текущей версии заявки не отправляются автоматически преподавателю. Для рабочего сайта нужно подключить канал уведомлений и указать контактные данные Анастасии Викторовны.

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

Для запуска в интернете рекомендуется заменить тестовый секретный ключ Flask:

$env:SECRET_KEY = "ваш-длинный-случайный-ключ"
python app.py

Файл .env.example содержит пример необходимой переменной.

Админ-панель

Панель доступна по адресу:

http://127.0.0.1:5000/admin

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

$env:ADMIN_PASSWORD = "ваш-приватный-пароль"
python app.py

После входа в панели отображаются:

  • имя ученика или родителя;
  • контакт для обратной связи;
  • выбранный предмет;
  • экзамен — ОГЭ или ЕГЭ;
  • формат занятий;
  • желаемое время занятий;
  • комментарий из формы;
  • дата и номер заявки.

Также в панели доступны:

  • сводная статистика по всем заявкам;
  • поиск по имени, контакту, комментарию и внутренней заметке;
  • фильтрация по статусу и предмету;
  • четыре статуса: «Новая», «Связались», «Запланирована», «Завершена»;
  • внутренние заметки преподавателя по каждой заявке;
  • удаление заявки с подтверждением;
  • экспорт текущего списка в CSV для Excel или Google Таблиц.

Ссылка на админ-панель не показывается посетителям сайта. Доступ защищён сессионной авторизацией Flask.

Дальнейшее развитие

  • уведомления о новых заявках в Telegram;
  • закрытая страница для просмотра заявок;
  • реальные контакты и расписание;
  • отзывы учеников и результаты подготовки;
  • публикация сайта на хостинге с Python.