Flask – лёгкий веб-фреймворк на Python для создания веб-приложений и API. Он минималистичен, предоставляет маршрутизацию URL, а также обработку запросов и поддержку шаблонов, но не навязывает структуру проекта и не включает встроенный WSGI-сервер для реальной рабочей среды. Flask подходит как для прототипов и тестовых приложений, так и для полноценного продакшена при использовании внешнего WSGI-сервера, например, Gunicorn и обратного прокси Nginx.
В статье разберём, как установить Flask на виртуальный выделенный сервер под управлением Rocky Linux 9 или CentOS 10.
Как установить Flask на Rocky Linux и CentOS
Для установки и запуска Flask на Rocky Linux 9 и CentOS 10 базово нужны только Python 3 и pip. Интерпретатор языка Python версии 3.x, позволяющий выполнять Python-код, нужен для выполнения кода и создания виртуальных окружений. В свою очередь, pip – менеджер пакетов для Python – необходим для установки Flask и его зависимостей. Другие пакеты не требуются, так как встроенный модуль venv позволяет изолировать окружение.
Установка требуемого софта производится через менеджер пакетов DNF:
$ sudo dnf install python3 python3-pip
После завершения установки проверьте версию Python:
$ python3 --version

А также версию менеджера pip:
$ pip3 --version

Запуск виртуального окружения
На следующем шаге создайте виртуальное окружение. В данном примере оно называется yourvenv:
$ python3 -m venv yourvenv
Затем активируйте его:
$ source yourvenv/bin/activate
После активации в приглашении для ввода команд будет присутствовать название виртуального окружения.

Поскольку Flask и его зависимости могут требовать актуальной версии pip, а при создании виртуального окружения используется версия pip, поставляемая вместе с системным Python, рекомендуется обновить pip внутри venv. При этом такой апгрейд не затрагивает системный Python и не конфликтует с пакетами, установленными через DNF.
$ pip install --upgrade pip
Проверьте версию pip после завершения процесса:
$ pip3 --version
Из вывода команды видно, что версия pip внутри виртуального окружения теперь отличается от версии pip в системе.

Далее при помощи pip запустите установку Flask и всех его зависимостей:
$ pip install flask
По окончании проверьте версию Falsk, чтобы убедиться в корректном завершении процесса:
$ flask --version

Создание и запуск тестового Flask-приложения
Для проверки работоспособности Flask создайте новое Flask-приложение:
$ vi app.py
В нашем примере мы используем Flask-приложение, которое запускает простейший веб-сайт с одной страницей и работает как встроенный тестовый сервер:
from flask import Flask
app = Flask(__name__)
@app.route("/")
def home():
return """
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Flask-сайт</title>
</head>
<body>
<p>Start Page of Your Flask Application.</p>
</body>
</html>
"""
if __name__ == "__main__":
app.run(host="0.0.0.0", port=5000, debug=True)
При переходе по ссылке http://X.X.X.X:5000, где X.X.X.X – это IP-адрес сервера, пользователь должен увидеть HTML-страницу, отдаваемую Flask. А поскольку в данном примере приложение слушает TCP-порт 5000, необходимо на сервере разрешить доступ к данному порту. Для этого добавьте соответствующее правило в брандмауэр Firewalld:
$ sudo firewall-cmd --permanent --add-port=5000/tcp
$ sudo firewall-cmd --reload
Следующей командой запустите Flask-приложение:
$ python app.py
Обратите внимание, что запуск Flask-приложения при помощи данной команды подходит только для разработки. Всё из-за того, что встроенный сервер не обеспечивает стабильной и безопасной работы. В реальном проекте рекомендуется использовать надёжный WSGI-сервер и отключать режим отладки. Соответствующее предупреждение выводится при запуске приложения.

После запуска приложения откройте браузер и перейдите на http://X.X.X.X:5000, где замените X.X.X.X на IP-адрес вашего сервера.

Для остановки работы Flask-приложения вернитесь в терминал и нажмите Ctrl C.
