Создайте веб-приложение на 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.