Учебное приложение на FastAPI: курсы и пользователи школы. Сделано как самостоятельная работа курса по FastAPI, поэтому показывает собранный проект целиком: маршруты, шаблоны Jinja2, валидацию формы, сессию с одноразовыми сообщениями и работу с базой через SQLModel.
- Python 3.14
app/main.py точка входа: приложение, сессия, подключение роутеров
app/database.py движок SQLite, сессия запроса, создание таблиц и данных
app/models.py таблицы SQLModel
app/forms.py схемы Pydantic для проверки форм
app/dependencies.py шаблоны, отрисовка страницы, flash и CSRF-токен
app/routers/ обработчики запросов, по файлу на сущность
templates/ шаблоны Jinja2
tests/ прогон страниц и форм через TestClient
Страницы открываются запросом GET, изменения отправляются формами с методом
POST: браузер других глаголов в формах не поддерживает, поэтому обновление и
удаление объявлены на маршрутах /{id}/edit и /{id}/delete.
Таблицы и начальные данные создаются на старте приложения, история схемы не
ведётся. Адрес базы задаёт переменная DATABASE_URL, по умолчанию это файл
school.sqlite в корне проекта.
make install
make dev
make test
make lintThis repository is created and maintained by the team and the community of Hexlet, an educational project. Read more about Hexlet.
