Учебник Full Stack Python Flask: ваше первое приложение Flask

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

Flask — это микро-инфраструктура, разработанная на Python, которая предоставляет только основные компоненты, такие как маршрутизация, обработка запросов, сеансы и т. Д. Он предоставляет вам библиотеки, инструменты и модули для разработки веб-приложений, таких как блог, вики или даже коммерческий веб-сайт. Он считается «удобным для новичков», потому что в нем нет шаблонного кода или зависимостей, которые могут отвлекать от основной функции приложения.

Flask используется для серверной части, но в нем используются шаблоны язык под названием Jinja2, который используется для создания HTML, XML или других форматов разметки, которые возвращаются пользователю через HTTP-запрос. Подробнее об этом чуть позже.

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

(Если вы хотите изучить Python с нуля, вы можете ознакомиться с нашим бесплатным курсом здесь. )

Итак, вот что мы рассмотрим сегодня:

  • Знакомство с фреймворком Flask
  • Hello World — ваше первое приложение Flask
  • URL-маршруты и представления
  • Шаг вперед: начало вашего первого проекта

Давайте углубимся!

Возможности Flask

Вот некоторые особенности, которые делают Flask идеальным фреймворком для разработки веб-приложений:

  1. Flask предоставляет сервер разработки и отладчик.
  2. Он использует шаблоны Jinja2. (подробнее об этом позже)
  3. Он соответствует WSGI 1.0. (подробнее об этом позже)
  4. Он обеспечивает интегрированную поддержку модульного тестирования.
  5. Для Flask доступно множество расширений, которые можно использовать для улучшения его функциональных возможностей.

Что такое микро-фреймворк?

Микро-фреймворки противоположны фреймворкам полного стека, которые также предлагают дополнительные модули для такие функции, как аутентификация, ORM базы данных, проверка и дезинфекция ввода и т. д.

Почему Flask называется микро-фреймворком?

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

Возможно, вы слышали такие комментарии, как «Flask на 100% совместим с WSGI» или «Flask использует Jinja как язык шаблона. » Но что конкретно это означает? Что такое WSGI и Jinja2? Давайте узнаем, что означают эти термины и их значение для Flask.

WSGI — интерфейс шлюза веб-сервера

Интерфейс шлюза веб-сервера , или более известный как WSGI , — это стандарт, который описывает спецификации, касающиеся связи между веб-сервером и клиентским приложением. Детали этих спецификаций представлены в PEP333. Вот некоторые преимущества WSGI:

  • Гибкость с компонентами приложения.
  • Взаимодействие в различных средах Python.
  • Масштабируемость приложения с увеличением числа пользователей.
  • Эффективность с точки зрения скорости разработки.

Jinja2 — язык шаблонов

Jinja — это язык шаблонов, используемый в Python. Но вы можете спросить, что такое язык шаблонов?

Шаблоны — это интерфейс, который видит пользователь. В случае веб-сайта шаблоны — это HTML-страницы. Язык шаблонов — это язык, который мы можем использовать внутри HTML, чтобы содержимое HTML-страницы стало динамическим.

Давайте перейдем к созданию вашего первого приложения Flask.

Простейшее приложение Flask можно создать с помощью всего одного скрипта! Назовем этот файл app.py. Мы разделим программу на шаги и обсудим каждый из них.

Шаг 1: Импорт модулей

Для этого приложения нам понадобится только модуль Flask из пакета flask. . Итак, давайте сначала импортируем это.

  from Flask import Flask  

Шаг 2: Создание объекта Flask

Нам нужно создать объект с импортированным модулем Flask. Этим объектом будет наше приложение WSGI с именем app . Как обсуждалось ранее, об аспекте приложения WSGI заботится модуль Flask.

  app = Flask (__ name__)  

Шаг 3. Запустите приложение в основном

Чтобы запустить наше приложение, нам нужно вызвать функцию run () нашего приложения. объект.

  if __name__ == "__main__": app.run ()  

run ( ) имеет несколько необязательных параметров. Полную документацию см. Здесь.

Шаг 4: Создайте функцию просмотра

Перед тем, как запустить приложение, нам нужно сообщить приложению, что показать что-нибудь как вывод в окне браузера. Таким образом, мы создаем функцию с именем hello () , которая возвращает строку «Hello World!». Результат, возвращенный этой функцией, будет показан в браузере.

  def hello (): return "Hello World!";   

Шаг 5. Назначьте URL-маршрут

Наконец, нам нужно сообщить приложению Flask, когда вызывать функцию просмотра привет () . Для этого мы создадим URL-маршрут. Маршрут URL связан с каждой функцией просмотра.. Эта ассоциация создается с помощью декоратора route () перед каждой функцией просмотра.

  @ app.route ("/") def hello  (): вернуть «Hello World!»;   

Полная реализация

Следующая программа показывает полную реализацию «Hello World ”Приложение во Flask!

  from flask import Flaskapp = Flask (__ name __) @ app.route ("/") def hello (): return" Hello World! ";  if __name__ == "__main__": app.run (debug = True, host = "0.0.0.0", port = 3000)  

URL-адреса и представления

Домашнюю страницу веб-сайта обычно можно найти по URL-адресу hostname , за которым следуют /, / home , /index или что-то такое, что не требует пояснений. Эти типы URL-адресов позволяют пользователям запомнить URL-адрес и легко получить к нему доступ. Было бы неожиданно, если бы домашняя страница находилась по случайному URL-адресу, например /39283 @ & 3911 или /more_eggs . Flask позволяет нам использовать декоратор route () для привязки значимого URL-адреса к каждой создаваемой нами функции просмотра.

Что такое функция просмотра?

При обсуждении архитектуры MTV (модель-шаблон-представление) мы узнали, что такое представление. Во Flask мы создаем функцию, которая действует как представление. Напомним, из примера Hello World мы создали функцию с именем hello . Эта функция действует как представление. Затем мы связали его с маршрутом.

  @ app.route ("/") def hello (): return "Hello World!";  

Декоратор route ()

Декоратор маршрута принимает следующие параметры:

  • rule : правило представляет правило URL-адреса, которое передается в виде строки в декоратор.
  • конечная точка (не требуется): конечная точка — это имя функции просмотра, которая привязана к URL-маршруту. Flask сам принимает этот параметр, и разработчику не нужно его указывать.
  • options (необязательно): параметры являются необязательным параметром. Мы обсудим это более подробно позже.

Статическая маршрутизация

В статической маршрутизации мы указываем постоянную строку URL-адреса как правило в декоратор route () . Например, в приведенном ниже мини-приложении мы указали два статических маршрута с URL-адресами / и /education соответственно.

Пример:

  из flask import Flask, render_templateapp = Flask (__ name__) @ app.route ("/") def home ()  : return "Добро пожаловать на главную страницу!"  @ app.route ("/education") def learn (): return "Удачного обучения в образовательном центре!"  если __name__ == "__main__": app.run (debug = True, host = "0.0.0. 0 ", порт = 3000)  

Объяснение

главная () view

Эта функция просмотра соответствует маршруту "/" . Когда вы открываете URL-адрес или устанавливаете флажок «Вывод ”, Это представление будет вызвано. "/" всегда является маршрутом по умолчанию для любого веб-приложения. Например, когда мы переходим на Educative.io, узел = «Educative.io» и route = «/».

learn () view

Эта функция просмотра соответствует маршруту "/education" . Когда вы открываете URL и добавляете "/ Educative ", это представление будет вызываться.

Например, когда мы перейдем на Educative.io/explore, host =« education. io »и route =«/explore ».

В предыдущих разделах мы реализовали наше первое приложение Flask (например, Hello World), научились создавать статические URL-маршруты и связывать их с представлениями. Используя это в Теперь мы приступим к созданию реального приложения.

Приложение, которое мы будем создавать, будет веб-сайтом по спасению животных под названием «Paws Rescue Center». Приступим к созданию приложения с домашней страницей и страницей «О программе».

Описание проблемы

В этой задаче мы реализуем представления для «домашней» и «около» страниц приложения.

  1. Маршруты URL-адресов для обоих представлений должны быть удобными для пользователя.
  2. Домашняя страница должна выводить строку: "Paws Rescue Center 🐾" .
  3. Функция about должна выводить следующую строку: "Мы являются некоммерческой организацией, занимающейся спасением животных. Мы стремимся помочь вам связаться с идеальным фурбаби для вас! Животные, которых вы найдете на нашем веб-сайте, являются спасенными и реабилитированными животными. Наша миссия состоит в том, чтобы продвигать идеологию "принимай, не надо" t Магазин "!" .

Ожидаемый результат главной страницы

v>

Об ожидаемом выводе страницы

Вот полная реализация для начала этого проекта:

  "" "Приложение Flask  для Paws Rescue Center. "" "from flask import Flaskapp = Flask (__ name__) @ app.route ("/") def homepage ():" "" Функция просмотра для домашней страницы. "" "return" Paws Rescue Center 🐾 "  @приложение. route ("/about") def about (): "" "Функция просмотра для страницы" О нас "." "return" "" Мы некоммерческая организация, работающая в качестве центра спасения животных. Мы стремимся помочь вам связаться с  purrfect furbaby для вас! Животные, которые вы найдете на нашем сайте, являются спасенными животными, которые были реабилитированы. Наша миссия - продвигать идеологию «Принимай, не покупай»! "" "if __name__ ==" __main__ ": app.  run (debug = True, host = "0.0.0.0", port = 3000)  

Объяснение

Этот вызов должен был помочь нам начать разработку с использованием фреймворка Flask. Давайте разберем решение и проанализируем его.

Домашняя страница

Сначала давайте посмотрим на решение для домашней страницы.

URL-маршрут

Мы хотим, чтобы домашняя страница была первой целевой страницей веб-сайта, поэтому используется маршрут "/ " имеет наибольший смысл, как показано в строке № 5 .

Вывод

Строка "Paws Rescue Center 🐾" была предоставлена ​​в задаче как требуемый результат. Все, что нам нужно было сделать, это вернуть эту строку в функцию просмотра. Это можно найти в строке № 8 в решении, показанном выше.

Страница «О программе»

Затем, для страницы «О программе», были реализованы следующие функции.

URL-маршрут

Самый очевидный и удобный для пользователя URL-маршрут для страницы с информацией о компании — "/about" (имеется в виду строка № 10 в решении).

Вывод

Строка вывода, указанная в формулировке задачи, возвращается в строках № 13–16 .

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

Поздравляем! Вы узнали, как создать свое первое приложение Flask, и начали свой первый проект. Тем не менее, еще многое предстоит изучить, например, статические и динамические шаблоны, обработка форм, подключение к базе данных с помощью SQLAlchemy и различные операции, которые вы можете выполнять с моделями (например, вставка, извлечение и т. Д.).

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

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

Оцените статью
nanomode.ru
Добавить комментарий