Создайте веб-приложение на Python

Данные - важнейшее понятие в современном мире. Вы потребляете данные каждую секунду независимо от того, ищете ли вы в Интернете или пользуетесь любимым приложением. Эти данные должны быть в правильном формате, чтобы иметь смысл. В этом руководстве мы рассмотрим, как выполнять фильтрацию, сортировку и разбиение на страницы данных в Python с помощью микросхемы Flask.

Что такое Flask?

Flask - это микро-фреймворк, написанный на Python. Его просто и легко настроить, поскольку не требуются определенные инструменты или библиотеки. У него нет уровня абстракции базы данных, проверки формы или других компонентов. Flask нацелен на то, чтобы ядро ​​оставалось простым, но расширяемым.

Создайте простое приложение Flask

Мы начнем с создания сервера API фильмов. Сервер API сможет выполнять следующее:

  • Получать записи с сервера на основе условий поиска
  • Пагинация до пяти записей на страницу
  • Сортировка фильмов по лучшим рейтингам

Создайте каталог проекта и настройте виртуальную среду. У вас должен быть установлен virtualenv. Виртуальные среды помогают разделить зависимости проекта.

Активировать виртуальную среду.

Внутри папки Movie создайте файл app.py.

Установить Flask с помощью Pip

Выполните следующую команду, чтобы установить Flask:

Если все пойдет хорошо, вы должны увидеть следующее:

Нам также потребуется установить Flask SQLAChemy. Согласно документам:

Flask-SQLAlchemy - это расширение для Flask, которое добавляет поддержку SQLAlchemy в ваше приложение. Он направлен на упрощение использования SQLAlchemy с Flask, предоставляя полезные значения по умолчанию и дополнительные помощники, которые упрощают выполнение общих задач.

Затем давайте настроим базовое приложение Flask в файле app.py. Сначала импортируйте Flask и создайте приложение Flask, как показано:

Подключить приложение к базе данных

Сначала давайте установим psycopg2 с помощью pip. psycopg2 - это адаптер базы данных для Python, который позволит нам подключить базу данных к нашей программе.

Следующим шагом является добавление конфигураций базы данных в наше приложение. Но сначала создайте локальную базу данных с помощью PostgreSQL. У вас уже должен быть установлен PostgreSQL. Если у вас его еще нет, ознакомьтесь с этими руководствами по установке для различных платформ.

Создайте базу данных.

PostgreSQL поставляется с клиентской программой командной строки под названием psql, которая используется для входа на сервер.

Войдите в PostgreSQL и создайте новую базу данных:

Создайте пользователя с привилегиями пароля в базе данных musica:

Перейдите в app.py и импортируйте библиотеку flasksqlachemy вверху:

Затем используйте класс SQLAchemy, чтобы связать экземпляр базы данных с нашим приложением:

db позволяет нам создавать классы моделей для нашей базы данных, а также выполнять транзакции в нашей базе данных.

Затем мы подключаемся к нашей базе данных из приложения flask, задав переменную конфигурации. Flask ожидает URI базы данных в качестве переменной конфигурации.

URI базы данных имеет следующий формат:

Создать таблицу базы данных

Наше приложение для фильмов определит таблицу фильмов, в которой будет храниться такая информация о фильме, как название, жанр и рейтинг.

Давайте продолжим и создадим наш класс модели:

db.create_all() обнаруживает модели и создает для них таблицы, если мы запускаем приложение Flask. Запустим приложение:

Теперь перейдите в PostgreSQL клиент, и вы увидите, что таблица фильмов создана:

Как вы можете видеть выше, таблица фильмов была создана, и теперь мы можем взаимодействовать с нашей базой данных.

Добавим данные в нашу таблицу. Вы можете использовать интерактивную подсказку оболочки для добавления данных следующим образом:

Сначала вы включаете python3 интерактивную подсказку оболочки, а затем импортируете экземпляр db и модель Movie из файла приложения.

Затем вы создаете экземпляр фильма, добавляете его в db сеанс и фиксируете в базе данных.

Пагинация

Одновременная отправка огромных объемов данных не рекомендуется, поскольку это замедляет работу клиента, поскольку ему приходится ждать, пока сервер получит все эти данные. Лучший подход к этой проблеме - разбивать данные на страницы с использованием аргументов запроса и отправлять пользователю только ту информацию, которая ему нужна, то есть пакеты информации.

Сначала мы начнем с получения всех фильмов в нашей базе данных, а затем разберем их на страницы и отобразим только несколько записей.

В приведенном выше коде показан простой маршрут, который извлекает все фильмы из базы данных и отображает их в формате JSON. Теперь, если вы запустите сервер и перейдете к http://127.0.0.1:5000/movies, вы должны увидеть, что на странице показаны всего 22 фильма:

Несмотря на то, что количество фильмов в нашей базе данных невелико, предположим, что в нашей базе данных имеется более тысячи фильмов - в этом случае получение всех данных замедлит работу сервера, что приведет к ухудшению взаимодействия с пользователем.

Подход к этой проблеме состоит в том, чтобы разбить список фильмов на страницы. К счастью, Flask поставляется с методом запроса paginate(), который мы будем использовать для получения ограниченного количества фильмов.

Синтаксис запроса разбиения на страницы следующий:

Он возвращает per_page элементов из page.

Давайте реализуем разбиение на страницы в нашем приложении Flask. Мы хотим получать только пять записей на странице.

Вот результаты:

Фильтрация

Фильтрация позволяет пользователям получать только необходимую информацию, передавая определенные параметры запроса.

Предположим, мы хотим получить все фильмы ужасов в базе данных. Реализуем это:

В приведенном выше коде мы используем атрибут ilike, чтобы гарантировать, что запрос нечувствителен к регистру, то есть и «HORROR», и «horror» дадут вам правильные результаты.

Вот результаты:

СОРТИРОВКА

Сортировка - это процесс упорядочивания данных запроса по конкретным элементам, чтобы вы могли анализировать их более эффективно. Вы можете сортировать данные по:

  • Алфавитный порядок
  • Порядок номеров
  • Категории, такие как год и т. Д.

Давайте отсортируем наши фильмы по фильмам с высоким рейтингом. В следующем коде показан список из пяти фильмов с самым высоким рейтингом:

Вот результаты пятерки лучших фильмов:

Заключение

В этом руководстве было рассмотрено создание простого приложения Flask, которое подключается к базе данных PostgreSQL. Он также охватывал концепции разбивки на страницы, фильтрации и сортировки. Надеюсь, вам понравилось!

Привет, друг, если вы хотите прочитать больше из этих руководств, подумайте о том, чтобы зарегистрироваться, чтобы стать членом Medium и поддержите мою работу. Всего за 5 долларов в месяц вы получаете неограниченный доступ к Medium.