Основные сведения о Flask
Веб-платформу Flask создатели называют "микроплатформой" с открытым кодом. Под этим они подразумевают, что платформа успешно выполняет все функции веб-платформы, но не предоставляет расширенные возможности или другие компоненты, которые потребуются для правильной работы приложения. Такой подход позволяет Flask быть чрезвычайно гибким и идеально подходит для использования в качестве внешнего интерфейса для существующих внутренних и API-интерфейсов, таких как службы искусственного интеллекта Azure!
При создании веб-приложения на любой платформе важно понимать несколько основных концепций, таких как маршрутизация, методы и создание шаблонов. Давайте изучим эти понятия, прежде чем переходить к работе с кодом.
Реагирование на запросы пользователей с помощью маршрутов
Когда пользователь обращается к веб-приложению, требуемые функции или искомые данные определяются структурой введенного в браузере URI-адреса. Этот адрес можно ввести вручную (например, https://adventure-works.com
), перейти по ссылке или нажать кнопку, для которой настроен нужный URL-адрес. Например, на сайте электронной коммерции могут использоваться URL-адреса следующего вида:
https://adventure-works.com/
для главной страницы;https://adventure-works.com/products/widget
для сведений в мини-приложении;https://adventure-works.com/cart/buy
для завершения покупки.
Нам, разработчикам, можно на задумываться о первой части URL-адреса, которая называется доменом (в нашем примере это adventure-works.com). Реальные действия в приложении зависят от того, что указано после имени домена начиная с символа /. Часть URL-адреса, расположенная после доменного имени, называется маршрутом.
Этот маршрут ведет к нужному действию. Маршрут выполняет роль кнопки в мобильном приложении, то есть определяет действие, которое пользователь хочет выполнить. Мы зарегистрируем в веб-приложении несколько маршрутов, чтобы реагировать на разные запросы, поддерживаемые этим приложением.
В самом приложении мы укажем, как нужно реагировать на запросы по определенным маршрутам, предоставляя для них функции. Маршрут сопоставляет адреса с функциями. В общую концепцию создания кода эта идея вписывается довольно гармонично. Когда нам нужно выполнить определенное действие, мы вызываем функцию. И наши пользователи будут делать то же самое! Для них просто предоставлен другой механизм на основе маршрутов.
Методы или команды
Обращаться к маршрутам можно разными способами, например через методы или команды (эти два термина означают одно и то же и могут использоваться взаимозаменяемо). Метод доступа к маршруту предоставляет дополнительный контекст о состоянии пользовательского запроса и о тех действиях, которые пользователь намерен выполнить.
Существует много методов для работы с веб-приложением, но из них достаточно широко распространены только два: GET и POST (остальные мы рассматривать не будем). GET обычно означает, что пользователь запрашивает информацию, а POST используется для отправки данных и получения некоторого ответа по ним.
Примечание.
Независимо от того, какую команду использует пользователь, вы всегда можете передать ему информацию.
Типичная блок-схема приложения с использованием GET и POST основывается на веб-форме. Предположим, что мы создаем приложение, в котором пользователь регистрируется для включения в список рассылки.
- Пользователь получает форму регистрации через метод GET.
- Пользователь заполняет эту форму и нажимает кнопку отправки.
- Сведения из этой формы передаются на сервер с помощью метода POST.
- Пользователю возвращается сообщение об успешном выполнении.
Как вы могли догадаться, пользователю не нужно явным образом указывать используемую команду, ведь это поведение управляется приложением. В общем случае, если пользователь напрямую переходит по URL-адресу (вводя его в адресной строке или щелкая ссылку), для доступа к странице используется метод GET. При нажатии кнопки для отправки формы обычно для передачи данных используется метод POST.
Примечание.
Здесь мы описываем происходящее в довольно общем виде, так как полное описание методов выходит за рамки этого модуля.
Шаблоны
Язык HTML используется для структурирования сведений, отображаемых в браузере, а формат CSS (каскадные таблицы стилей) позволяет управлять стилями и макетами. В созданном приложении большая часть HTML-кода будет статической, то есть не будет меняться. Но чтобы сделать наши страницы динамическими, нам нужна возможность программно размещать информацию на HTML-странице. Почти все веб-платформы решают эту задачу с помощью шаблонов.
Шаблон позволяет создать базовый код HTML (шаблон) и включить в него заполнители для динамической информации. Наиболее распространенным синтаксисом для заполнителей является {{ }}
. Именно этот синтаксис поддерживает Jinja, механизм создания шаблонов для Flask.
<h1>Welcome, {{ name }}</h1>
В предыдущем примере есть HTML-тэг h1
(заголовок) с текстом для отображения. {{ name }}
указывает, что здесь будет отображаться значение переменной с именем name
после слова Welcome. Такой синтаксис позволяет создать любой код HTML, который позволят наши умения, и по мере необходимости внедрять в него динамическую информацию.