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.