Создание вашего первого приложения Flask

Цели этой статьи

  1. Знайте, что такое Flask
  2. Разберитесь, что такое виртуальная среда и как ее создать на Python.
  3. Создайте одностраничное приложение с помощью Flask
  4. Добавление HTML в ваше приложение.

Веб-разработка на Flask

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

По сравнению с Django его обычно называют микро-фреймворком, хотя с его помощью можно создать сильное и отличное приложение.

При определении Flask выше я использовал некоторые термины, позвольте мне объяснить их сейчас.

  1. Инфраструктура веб-приложений WSGI: интерфейс шлюза веб-сервера (WSGI, произносится как виски) - это простое соглашение о вызовах для веб-серверов для пересылки запросов. в веб-приложения или фреймворки, написанные на языке программирования Python.
  2. Werkzeug: Werkzeug - это комплексная библиотека веб-приложений WSGI. Он начинался как простой набор различных утилит для приложений WSGI и стал одной из самых продвинутых библиотек утилит WSGI. Flask обертывает Werkzeug, используя его для обработки деталей WSGI, обеспечивая при этом больше структуры и шаблонов для определения мощных приложений.
  3. Jinja: Jinja, также обычно называемый Jinja2 для обозначения последней версии выпуска, представляет собой механизм шаблонов Python, используемый для создания HTML, XML или других форматов разметки, которые возвращаются пользователю через ответ HTTP. Jinja2 полезен тем, что имеет согласованный синтаксис тегов шаблона, а проект полностью извлечен как независимый проект с открытым исходным кодом, поэтому его можно использовать в качестве зависимости другими библиотеками кода.

Виртуальная среда

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

Вы можете проверить документацию Python по виртуальной среде.

Шаги по включению виртуальной среды

  1. Откройте терминал. Если вы используете Windows, вы можете вместо этого открыть командную строку или терминал IDE.
  2. Настройте диспетчер пакетов pip.
  3. Установите пакет virtualenv.
  4. Создайте виртуальную среду.
  5. Активируйте виртуальную среду.
  6. Деактивировать виртуальную среду.
  7. Необязательно: сделайте виртуальную среду Python по умолчанию.
  8. Подробнее: документация Python virtualenv.

Если вы только устанавливаете Python, скачайте и установите Python, убедитесь, что вы установили правильно.

Настройка диспетчера пакетов pip:

Если вы используете Windows:

py -m pip --version
## You should get something like the one below.
## pip 9.0.1 from c:\python36\lib\site-packages (Python 3.6.1)
##You can upgrade your pip by writing
py -m pip install --upgrade pip

Если вы используете Mac или Linux:

python3 -m pip install --user --upgrade pip
python3 -m pip --version
## pip 9.0.1 from $HOME/.local/lib/python3.6/site-packages (python 3.6)

Установка Virtualenv

python3 -m pip install --user virtualenv # For Mac and Linux users
py -m pip install --user virtualenv # For Windows user

Создание виртуальной среды

py -m venv env # For Windows users
python3 -m venv env # For Mac and Linux users

Второй аргумент env - это имя виртуальной среды, которое может быть любым. Все это нужно делать в вашем рабочем каталоге.

Активация виртуальной среды

source env/bin/activate #For Mac and Linux users
.\env\Scripts\activate #For Windows users.

Примечание: env, использованный в приведенной выше команде, следует заменить на то, что вы назвали своей виртуальной средой.

Чтобы подтвердить, что вы находитесь в виртуальной среде

which python # For Windows users
.../env/bin/python
where python # For Mac and Linux users
.../env/bin/python.exe

Деактивация виртуальной среды

Чтобы выйти из виртуальной среды, просто введите деактивировать.

deactivate

Далее следует установить необходимые библиотеки

Для этого проекта нам необходимо установить флягу.

pip install flask

Чтобы убедиться, что у вас установлена ​​фляжка, введите свой терминал

python «импортная колба»; print (flask .__ version__) »

#1.1.2

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

Теперь мы подтвердили, что у нас есть flask и установленные зависимости.

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

В своем рабочем каталоге создайте новый файл python и сохраните его. Я сохраню свой файл app.py

Далее следует запустить приложение.

Как видим, мы создали приложение Flask.

Давайте посмотрим на каждую строку подробнее

В строке 1: мы импортируем Flask из flask, который мы использовали для создания нашего приложения.

В строке 2: мы создали наш декоратор класса и сохранили его как Flask, это стандартное соглашение.

Строка 3: мы использовали приложение для украшения нашей функции. Подробнее читайте о декораторах. Направляем декоратор на главную страницу сайта. Я мог бы направить его к конечной точке, выполнив app.route (‘/ about /’).

В строке 4: мы создали функцию и назвали ее home, у которой нет параметров.

В строке 5: мы вернули Hello world! в функции.

Наконец, мы использовали метод run в нашем декораторе.

В терминале

Я использовал ключевое слово set (если вы используете Mac или Linux, используйте вместо него экспорт)

Я установил FLASK_APP для сценария, который запускает мое приложение, за исключением расширения, которое всегда будет .py, обратите внимание на соглашение. Прописные буквы, без пробела, обратите внимание, что все это должно выполняться в корневом каталоге вашего проекта, в котором находится ваш файл запуска. Обратите внимание, что по умолчанию FLASK_APP в конфигурации переменной flask установлен на app или wsgi, поэтому, если вы запускаете свой скрипт с любым из этих двух, вам может не потребоваться его устанавливать.

Я также установил FLASK_ENV для разработки, обратите внимание, что в этом случае мы просто разрабатываем, а не развертываем, обратите внимание, что по умолчанию он находится в производстве

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

Наконец, я запускаю приложение.

Вы можете увидеть URL-адрес приложения

Давайте добавим HTML на нашу страницу

Flask использует движок Jinja2. Во-первых, мы создаем папку шаблонов и помещаем в нее все наши HTML-коды.

В нашем файле .py мы напишем

Теперь вы заметите некоторые изменения в файле.

  1. Мы импортируем дополнительную функцию, называемую render_template, которую мы используем для визуализации наших файлов HTML. Это то, что Jinja использует для получения html в нашей функции просмотра.
  2. Над нашей домашней функцией у нас есть 2 декоратора. Что они делают, так это то, что у страницы есть две конечные точки. если я перейду на домашнюю конечную точку, я получу ту же страницу.
  3. Появился новый декоратор (маршрут), который направляет функцию к конечной точке about. И функция about, которую мы используем для этого.

В первом html-коде home.html у нас есть

  1. В теге body это то, что мы видим в браузере.
  2. Тег заголовка описывает метаданные веб-страницы.
  3. Между тегами body я помещаю теги h1, p, a и footer.

Далее нам нужно запустить приложение.

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

Первые два изображения одинаковы, потому что функция домашнего просмотра имеет две конечные точки '/' и '/ home /'. Обратите внимание, что наличие обратной косой черты в Функция route from view допускает гибкость, т. е. я могу решать, добавлять или нет в браузере.

Con