Flask - это простой веб-фреймворк, написанный на Python.

В этой статье мы рассмотрим, как разрабатывать простые веб-приложения на Python с помощью Flask.

Создать проект

Во-первых, нам нужно установить Python 3, если он еще не установлен.

Он поставляется со сценариями для создания виртуальной среды, поэтому нам не нужно ничего устанавливать.

Мы можем создать проект, запустив:

$ mkdir flask-app
$ cd flask-app
$ python3 -m venv venv

в Linux.

Создаем папку проекта и виртуальную среду.

В Windows мы создаем папку проекта flask-app и внутри нее запускаем:

$ py -3 -m venv venv

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

Активировать среду

Затем мы активируем виртуальную среду.

Для этого запускаем:

$ . venv/bin/activate

В папке проекта в Linux.

В Windows запускаем:

> venv\Scripts\activate

сделать то же самое.

Установить Flask

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

$ pip install Flask

для установки пакета Flask.

Минимальное приложение

Теперь в папке проекта flask-app создаем app.py и пишем:

app = Flask(__name__)
@app.route('/')
def hello_world():
    return 'Hello, World!'

создать приложение hello world.

Flask(__name__) создает приложение Flask.

@app.route - декоратор для добавления маршрута.

Мы возвращаем наш ответ в виде текста в функции hello_world.

Затем, чтобы запустить наше приложение, мы запускаем:

$ export FLASK_APP=app.py
$ flask run

для запуска нашего приложения в Linux.

В Windows запускаем:

> set FLASK_APP=app.py
> python -m flask run

чтобы установить переменную среды FLASK_APP и запустить наше приложение.

Переменная среды FLASK_APP должна быть установлена ​​равной имени файла точки входа.

Теперь мы можем перейти на https://127.0.0.1:5000/ в браузере и увидеть на экране «привет, мир».

Режим отладки

Мы можем включить режим отладки, установив для переменной среды FLASK_END значение development.

Мы можем запустить:

export FLASK_ENV=development

сделать это в Linux.

В Windows запускаем:

set FLASK_ENV=development

сделать то же самое.

Маршрутизация

Мы можем добавить более одного маршрута в наше приложение.

Например, мы можем написать:

from flask import Flask
app = Flask(__name__)
@app.route('/')
def index():
    return 'Welcome'
@app.route('/hello')
def hello():
    return 'Hello, World'

Затем, когда мы переходим на https://127.0.0.1:5000/, мы видим «Добро пожаловать».

А когда мы переходим на https://127.0.0.1:5000/hello, мы видим «Hello, World».

Маршрутизация с переменными

Мы можем сделать наши маршруты более полезными с помощью переменных.

Например, мы можем написать:

from flask import Flask
from markupsafe import escape
app = Flask(__name__)
@app.route('/user/<username>')
def show_user_profile(username):
    return 'User %s' % escape(username)
@app.route('/post/<int:post_id>')
def show_post(post_id):
    return 'Post %d' % post_id
@app.route('/path/<path:subpath>')
def show_subpath(subpath):
    return 'Subpath %s' % escape(subpath)

для создания приложения с маршрутами, которые принимают параметры маршрута.

<username> - это заполнитель параметра URL.

Мы можем получить к нему доступ с помощью параметра username.

escape экранирует параметр URL, чтобы его можно было безопасно использовать.

Мы указали требуемый тип данных с помощью подстрок int и path.

int - целое число. path - это строка пути.

Итак, если мы перейдем к http: // localhost: 5000 / path / foo / bar, мы получим Subpath foo / bar.

И если мы перейдем на http: // localhost: 5000 / post / 2, мы получим Post 2.

И если мы перейдем к http: // localhost: 5000 / user / foo, мы получим User foo.

Мы можем указать следующие типы:

  • string - принимает любой текст без косой черты (по умолчанию)
  • int — принимает положительные целые числа
  • float — принимает положительные значения с плавающей запятой.
  • path — как string, но допускает косую черту.
  • uuid - принимает строки UUID

Заключение

Мы можем с легкостью создавать простые приложения с помощью Flask.