Python-Винегрет. Модуль #1
Урок 1: Flask
и его друзья
Учим Flask, Jinja2, WSGI, и много других страшных слов.
 
Python-Винегрет. Модуль №1
Урок №1
Введение
Flask - это фреймворк для веб-приложений, написанный на Python. Armin Ronacher, который возглавляет международную группу энтузиастов Python Pocco, развивает его. Flask основан на инструментарии Werkzeug WSGI и шаблонизаторе Jinja2. Оба проекта делают в Pocco.

Прежде чем приступить к изучению этого руководства, мы предполагаем, что у вас есть практический опыт работы с HTML и Python. Если вы не очень хорошо знакомы с этими концепциями, советуем немного подтянуть теорию.
Что такое фреймворк?
Что такое веб-фреймворк?
Web Application Framework, или просто Web Framework представляет собой набор библиотек и модулей, которые позволяют разработчику веб-приложений писать приложения, не заботясь о деталях low-level, таких как протоколы, управление потоками и прочее.

Что такое Flask?

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

WSGI
Интерфейс веб-сервера (WSGI) был принят в качестве стандарта для разработки веб-приложений на Python. WSGI - это спецификация универсального интерфейса между веб-сервером и веб-приложениями.

Werkzeug
Это инструментарий WSGI, который реализует запросы, объекты ответа и другие служебные функции. Это позволяет построить веб-фреймворк поверх него. Платформа Flask использует Werkzeug в качестве одной из своих основ.

Jinja2
Jinja2 - популярный шаблонизатор для Python. Система веб-шаблонов объединяет шаблон с определенным источником данных для отображения динамических веб-страниц.
Flask часто называют микрофреймворком. Он направлен на то, чтобы ядро приложения было простым, но расширяемым. Flask не имеет встроенного уровня абстракции для обработки базы данных и не имеет поддержки проверки. Вместо этого Flask поддерживает расширения для добавления таких функций в приложение. Некоторые из популярных расширений Flask
обсуждаются позже в руководстве.
Начало работы
Установка virtualenv

virtualenv - это конструктор виртуальной среды Python. Это помогает пользователю создавать несколько сред Python бок о бок. Таким образом, это может избежать проблем совместимости между различными версиями библиотек.

Следующая команда устанавливает virtualenv:

pip install virtualenv

Эта команда требует прав администратора. Добавьте sudo перед pip в Linux / Mac OS. Если вы работаете в Windows, войдите как Администратор.


mkdir newproj
cd newproj
virtualenv venv


Далее, нужно активировать виртуальную среду, на Windows таким образом:

venv\scripts\activate

Теперь мы готовы установить Flask в рамках среды.

pip install Flask

Приведенную выше команду можно запустить напрямую, без виртуальной среды для общесистемной установки.
Первая программа
Чтобы проверить установку Flask, введите следующий код в редакторе как Hello.py

from flask import Flask
app = Flask(__name__)

@app.route('/')
def hello_world():
return 'Hello World'

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


Установка модуля Flask в проект обязательна. Объект класса Flask - это наше приложение WSGI.
Конструктор Flask принимает имя текущего модуля (__name__) в качестве аргумента.

Функция route () класса Flask является декоратором, который сообщает приложению, какой URL должен вызывать связанную функцию.

app.route (rule, параметры)
Параметр rule представляет привязку URL с помощью функции.

Параметры - это список параметров, которые необходимо переслать в базовый объект Rule.

В приведенном выше примере URL-адрес «/» связан с функцией hello_world (). Следовательно, когда домашняя страница веб-сервера открывается в браузере, вывод этой функции будет отображен.
Наконец, метод run () класса Flask запускает приложение на локальном сервере разработки.

app.run(host, port, debug, options) - все параметры опциональны

Далее, на англ.:
host - Hostname to listen on. Defaults to 127.0.0.1 (localhost). Set to '0.0.0.0' to have server available externally
port - Defaults to 5000
debug - Defaults to false. If set to true, provides a debug information
options - To be forwarded to underlying Werkzeug server.


Данный скрипт Python выполняется из оболочки Python

Python Hello.py

A message in Python shell informs you that

* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)

Откройте URL (localhost:5000) в браузере
'Hello World' будет отображаться на экране

Debug-режим

Приложение Flask запускается путем вызова метода run (). Однако, пока приложение находится в стадии разработки, его следует перезапускать вручную для каждого изменения в коде. Чтобы избежать этого неудобства, включите поддержку отладки. Затем сервер перезагрузится, если код изменится. Он также предоставит полезный отладчик для отслеживания ошибок, если таковые имеются, в приложении.

Режим отладки включается установкой для свойства debug объекта приложения значения True перед запуском или передачей параметра отладки методу run ().

app.debug = True
app.run
()

или

app.run(debug = True)
Отличная работа!
Осталось пройти итоговый тест
по материалам урока.
Приступить к тесту
Понравился урок?
Made on
Tilda