Разработать небольшое web-приложение, взаимодействующее с базой данных.
Web-приложение должно обеспечивать внесение, модификацию, удаление данных в БД,
считывание списков уже внесенных данных и их просмотр.
Использование специализированных JavaScript-библиотек необязательно. Достаточной будет реализация простых HTML-страниц с формами.
Предметная область для базы данных: студенты и зачеты. Необходимо реализовать учет студентов, изучаемых ими предметов и итоговых семестровых оценок, полученных студентами после сдачи сессии.
Должны присутствовать возможность поиска студентов и просмотр личной карточки со всеми оценками студента.
Минимальное количество таблиц: 3, максимальное ограничено разумными сроками выполнения задания.
В таблицах должны быть автогенерируемые идентификаторы. Доступ к базе данных должен осуществляться с использованием библиотеки psycopg2 без специализированных ORM (alchemy и т.п.). Возможно (но необязательно) использование одного из следующих микро-web-фрейморков (flask, bottle). Спроектированную базу данных необходимо заполнить тестовыми данными (с использованием PL\pgSQL), включив в неё 1 млн оценок.
- Версия Python: от 2.7 и выше
- Web-сервер: любой
- PostgreSQL от v.9.1
- исходные коды web-приложения;
- dump базы данных (набор скриптов для создания и наполнения БД).
В реализации поставленного задания был задействован следующий стек технологий:
- Pyhon 3.5.2
- PostgreSQL 9.5.6
- psycopg2==2.7.1
- Flask==0.12.2
- Веб сервер - локальный сервер разработки фреймворка Flask.
В состав приложения входит:
- Исходные коды web-приложения. Располагаются в папке /students_app/src
- Набор скриптов для создания и наполнения БД. Папка /students_app/sql
- Скачать репозиторий приложения (git clone https://github.com/VetoS88/technodar_test.git (предполагается что git установлен)).
- При помощи psql создать базу данных и пользователя используя команды из фала database_init_scripts.sql.
- Залогиниться через psql к созданной базе данных (psql -h localhost -U professor -d students), используя учетную запись созданную при помощи команд из п. 2.
- Выполнить команды по созданию таблиц в базе даных из файла tables_init_scripts.sql.
4.1 Опционально: при помощи комманд из файла generate_data_scripts.sql
можно наполнить базу данных случайными значениями. - Создать виртуальное окружение с использованием Python 3.5
(python3 -m venv students_venv (предполагается, что под переменной python3 в системе установлен Python 3.5)) - Активировать виртуальное окружение (source students_venv/bin/activate)
- Установить зависимости из файла "requirements.txt" (pip install -r requirements.txt)
- Перейти в папку students_app.
- Запустить веб сервер командой python src/run.py (сервис будет доступен по адресу http://localhost:5000).