Что проще Flask?
В моей работе часто встречаются задачи обработки большого количества данных. Хорошей практикой является визуализировать работу программы. Вместо всем наскучивших консольных приложений можно быстро создать статичное веб-приложение.
Для этого подходит микрофреймворк Flask, написанный на Python.
Этот фреймворк позволят быстро создавать простые сайты, подключать к ним базы данных, использовать все возможности Python для удобной разработки. С его помощью можно писать не только маленькие сайты, но и крупные масштабируемые веб-приложения, используя все возможные расширения.
Покажу простоту использования Flask на примере разработки сайта, определяющего регион и оператор телефонной связи по номеру телефона.
Создаем Python проект. В IDLE PyCharm можно сразу создать Flask проект.
Если вы используете другую среду разработки, просто создайте новый проект и установите в виртуальное окружение библиотеку Flask.
Flask использует следующую структуру проекта
templates – хранилище HTML шаблонов,
static – хранилище статичных компонентов,
app.py – само веб-приложение.
app.py
Так выглядит первоначальное Flask приложение. В дальнейшем, будем расширять этот файл новыми функциями. Каждая функция с декоратором “@app.route” будет отвечать за отдельную страницу сайта. В этих функциях будем создавать маршрутизацию между страницами, обрабатывать запросы пользователя.
Так как наше приложение должно принимать российский номер телефона, сопоставлять его с имеющимся перечнем сотовых операторов и выдавать ответ пользователю, создадим базу данных для хранения данных сотовых операторов. Создадим базу данных sqlite3 и передадим туда исходные данные.
Исходные данные хранились в формате csv. Импортируем модуль csv и прочитаем данные файла.
Импортируем базу данных sqlite3.
Создаем файл базы данных database.db
Прочитаем файл schema.sql, в котором хранится скрипт создания таблицы базы данных, и выполним запрос к database.db.
Осталось вставить все прочитанные из csv данные в базу данных и закрыть соединение.
Вернемся к файлу app.py. Создадим функцию, принимающую номер телефона и возвращающую сотовый оператор, к которому относится номер.
Данная функция проверяет формат номера телефона, отправляет SELECT запрос к базе данных и возвращает найденную строчку или сообщение об ошибке.
Создадим функцию index, работающую с шаблоном index.html.
Данная функция объявляет маршрут index.html и обрабатывает запросы пользователя, полученные методом POST.
Создадим шаблон index.html
Flask позволяет использовать стандартные конструкции ветвления такие как:
· Условные операторы {% if condition %} {% endif %}
· Циклы {% for I in list %} {% end for %}
Также есть возможность использовать переменные, переданные в шаблон {{ data }}.
Наше приложение готово, осталось запустить его следующим кодом.
Пример работы созданного сайта.
Итак, мы познакомились с микрофреймворком Flask, позволяющим быстро создавать полноценные веб-приложения. Данный инструмент особенно полезен в задачах, когда необходимо быстро создать тестовое веб-приложение. Flask позволяет без особых усилий создавать масштабируемые приложения. Используя готовые расширения, можно создавать полноценные сайты с системами авторизации, субд и адаптивной версткой.