Этот сайт - интерфейс для учеников школы. Здесь можно посмотреть оценки, расписание и прочую открытую информацию. Учителя заполняют базу данных через другой сайт. Ставят там оценки и т.д.
На сайте есть ученики: Schoolkid. Класс ученика определяется через комбинацию его полей year_of_study — год обучения и group_letter — литера класса. Вместе получается, например, 10А. Ученик связан со следующими моделями:
Mark— оценка на уроке, от 2 до 5.Commendation— похвала от учителя, за особые достижения.Chastisement— замечание от учителя, за особые проступки.
Все 3 объекта связаны не только с учителем, который их создал, но и с учебным предметом (Subject). Примеры Subject:
- Математика 8 класса
- Геометрия 11 класса
- Русский язык 1 класса
- Русский язык 4 класса
Subject определяется не только названием, но и годом обучения, для которого учебный предмет проходит.
За расписание уроков отвечает модель Lesson. Каждый объект Lesson — урок в расписании. У урока есть комбинация year_of_study и group_letter, благодаря ей можно узнать для какого класса проходит этот урок. У урока есть subject и teacher, которые отвечают на вопросы "что за урок" и "кто ведёт". У урока есть room — номер кабинета, где он проходит. Урок проходит в дату date.
Расписание в школе строится по слотам:
- 8:00-8:40 — 1 урок
- 8:50-9:30 — 2 урок
- ...
У каждого Lesson есть поле timeslot, которое объясняет, какой номер у этого урока в расписании.
- Скачайте код
- Установите зависимости командой
pip install -r requirements.txt - Создайте БД командой
python3 manage.py migrate - Запустите сервер командой
python3 manage.py runserver
Часть настроек проекта берётся из переменных окружения. Чтобы их определить, создайте файл .env рядом с manage.py и запишите туда данные в таком формате: ПЕРЕМЕННАЯ=значение.
Доступны 3 переменные:
DEBUG— дебаг-режим. Поставьте True, чтобы увидеть отладочную информацию в случае ошибки.SECRET_KEY— секретный ключ проектаALLOWED_HOSTS— см документацию Django.DATABASE_NAME— путь до базы данных, например:schoolbase.sqlite3
Код написан в учебных целях — это урок в курсе по Python и веб-разработке на сайте Devman.