Flask#

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

Основные пакеты

Пакет

Версия

Репозиторий

Описание

python3-flask

2.2.2-3+b2

extended

Микро веб-фраймворк

Дополнительные пакеты

Пакет

Версия

Репозиторий

Описание

python3-flask-restful

0.3.9-6+b2

extended

Расширение для создания REST API

python3-flask-sqlalchemy

3.0.3-1

extended

Добавляет поддержку SQLAlchemy в Flask

python3-sqlalchemy

1.4.46+ds1-1+b2

installation

Библиотека абстракции базы данных (ORM)

python3-psycopg2

2.9.5+b2

installation

Адаптер базы данных PostgreSQL

Примечание

В репозиториях большая часть пакетов, относящихся к Flask, имеют вид python3-flask…

Установка Flask#

  • установите пакет Flask:

sudo apt install python3-flask

Создание простого веб-приложения#

Пункт 1#

  • создайте папку для вашего проекта и перейдите в неё:

mkdir my_flask_app
cd my_flask_app

Пункт 2#

  • создайте файл app.py и добавьте следующий код:

from flask import Flask

app = Flask(__name__)

@app.route("/")
def home():
    return "Привет, Flask!"

if __name__ == "__main__":
    app.run(host="0.0.0.0", port=5000)

Пункт 3#

  • запустите приложение:

python3 app.py

Пункт 4#

  • откройте браузер и перейдите по адресу http://127.0.0.1:5000/. Вы увидите сообщение «Привет, Flask!».

Объяснение кода#

Импорт Flask:

from flask import Flask

Мы импортируем класс Flask из библиотеки flask.

Создание экземпляра приложения:

app = Flask(__name__)

Создаём экземпляр приложения Flask.

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

@app.route("/")
def home():
  return "Привет, Flask!"

  @app.route("/") определяет маршрут для корневого URL (/).

Функция home() возвращает текст, который будет отображён в браузере.

Запуск приложения:

if __name__ == "__main__":
  app.run(host="0.0.0.0", port=5000)

host=»0.0.0.0» позволяет приложению быть доступным из любой сети.

port=5000 указывает порт, на котором будет работать приложение.

Добавление HTML-шаблонов#

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

Пункт 1#

  • создайте папку templates в корне вашего проекта:

mkdir templates

Пункт 2#

  • создайте файл templates/index.html и добавьте следующий код:

<!DOCTYPE html>
<html lang="ru">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Главная страница</title>
</head>
<body>
    <h1>Привет, {{ name }}!</h1>
</body>
</html>

Пункт 3#

  • измените app.py, чтобы использовать шаблон:

from flask import Flask, render_template

app = Flask(__name__)

@app.route("/")
def home():
    return render_template("index.html", name="Flask")

if __name__ == "__main__":
    app.run(host="0.0.0.0", port=5000)

render_template(«index.html», name=»Flask») загружает шаблон index.html и передаёт переменную name.

Запуск приложения в production#

Для запуска Flask-приложения в production рекомендуется использовать WSGI-сервер, например, Gunicorn или Apache2.