Проект на реактивной тяге и Flask фреймворке, позволяющий просматривать информацию о количестве городов и население десяти самых больших городов в стране. Сайт работает с использованием реляционной СУБД PostgreSQL. В качестве БД выбран сэмпл с официального сайта используемой СУБД и приложено в корневой папке репозитория.
Для того чтобы развернуть сайт в своем окружении, вам потребуется проследовать инструкции:
- Убедитесь что у вас установлен python не ниже версии 3.1 и pip.
- Вам понадобится PostgreSQL. Вы можете поднять ее сами или использовать облачное решение. Не забудьте импортировать схему
world.sql. - Скачайте репозиторий и войдите в него при помощи терминала.
- Создайте виртуальное окружение и войдите в него при помощи команды:
python3 -m venv . & source bin/activate - Скачайте зависимости:
pip install -r requirements.txt. - Измените данные для подключения к БД на собственные в файле main.py.
- Запустите проект командой:
python3 main.py - У вас запущен мой проект :)
Сайт представляет собой простейшее веб-приложение из трех страниц:
- главная (index.html)
- страница с данными (country_info.html)
- страница с сообщением об ошибке (country_not_fount.html)
Каждая страница включает в себя базовый шаблон base.html, который позволяет не повторяться в фундаментальной структуре сайта и упрощает разработку.
Файл имеет две функции.
Одна из них index(), которая позволяет принимать запросы, где в качестве аргумента приходит трехзначный код страны методом POST.
Эта функция, получив запрос методом POST, она сразу вызывает функцию методом GET get_country_info(country_code), что в свою очередь получает данные из БД и генерирует уже страницы по запросу.
get_country_info(country_code) преобразует к правильному виду полученный код и делает запрос в БД. Получив ответ, генерируется страница по шаблону country_info.html. Иначе генерируется по шаблону country_not_found.html.
Также реализован прикол, который незадокументирован)