
Flask — это бесплатный микровеб-фреймворк с открытым исходным кодом для Python, призванный помочь разработчикам создавать безопасные, масштабируемые и удобные в обслуживании веб-приложения. Flask основан на Werkzeug и использует Jinja2 в качестве шаблонизатора.
В отличие от Django , Flask по умолчанию не включает ORM, валидацию форм и другие функции, предоставляемые сторонними библиотеками. Flask разработан с учётом расширений — пакетов Python, которые добавляют функциональность приложению Flask.
Существуют разные способы установки Flask в зависимости от ваших потребностей. Его можно установить на всю систему или в виртуальную среду Python с помощью pip.
Пакеты Flask также включены в репозитории EPEL и могут быть установлены с помощью менеджера пакетов yum . Это самый простой способ установки Flask на CentOS 7, но он не такой гибкий, как установка в виртуальной среде. Кроме того, версия, включённая в репозитории, всегда отстаёт от последней версии Flask.
Основная цель виртуальных сред Python — создание изолированной среды для различных проектов Python. Таким образом, вы можете создать несколько различных сред Flask на одном компьютере и устанавливать определённую версию модуля для каждого проекта, не беспокоясь о том, что это повлияет на другие установки Flask. Если вы устанавливаете Flask в глобальное окружение, вы можете установить только одну версию Flask на свой компьютер.
Установка Flask на CentOS 7
В следующих разделах мы подробно расскажем, как установить Flask в виртуальной среде Python на CentOS 7.
1. Установка Python 3 и venv
Мы установим Python 3.6 из репозиториев Software Collections (SCL).
CentOS 7 поставляется с Python 2.7.5, который является важнейшей частью базовой системы CentOS. SCL позволит вам установить более новые версии Python 3.x наряду с Python v2.7.5 по умолчанию, чтобы системные инструменты, такие как yum, продолжали работать корректно.
Включите SCL, установив файл релиза CentOS SCL, который включен в репозиторий CentOS Extras:
sudo yum install centos-release-scl
После включения репозитория установите Python 3.6 с помощью следующей команды:
sudo yum install rh-python36
После установки Python 3.6 мы готовы создать виртуальную среду для нашего приложения Django.
2. Создание виртуальной среды
Для начала перейдите в каталог, где вы хотите хранить виртуальные среды Python 3. Это может быть ваш домашний каталог или любой другой каталог, к которому у вашего пользователя есть права на чтение и запись.
Чтобы получить доступ к Python 3.6, вам необходимо запустить новый экземпляр оболочки с помощью инструмента scl :
scl enable rh-python36 bash
Создайте новый каталог для вашего приложения Flask и перейдите в него:
mkdir my_flask_appcd my_flask_app
Выполните следующую команду для создания новой виртуальной среды:
python3 -m venv venv
Приведённая выше команда создаст каталог venv , содержащий копию исполняемого файла Python, менеджера пакетов Pip , стандартной библиотеки Python и других вспомогательных файлов. Вы можете использовать любое имя для виртуального окружения.
Активируйте виртуальную среду с помощью скрипта activate :
source venv/bin/activate
После активации каталог bin виртуального окружения будет добавлен в начало переменной $PATH . Кроме того, приглашение командной оболочки изменится и отобразит имя текущего виртуального окружения. В нашем случае это venv .
3. Установка Flask
Теперь, когда виртуальная среда активирована, вы можете использовать менеджер пакетов Python pip для установки Flask:
pip install Flask
В виртуальной среде вы можете использовать команду pip вместо pip3 и python вместо python3 .
Проверьте установку с помощью следующей команды, которая выведет версию Flask:
python -m Flask --version
На момент написания статьи последней официальной версией Flask была 1.0.2.
Flask 1.0.2 Python 3.6.3 (default, Mar 20 2018, 13:50:41) [GCC 4.8.5 20150623 (Red Hat 4.8.5-16)]
Ваша версия Flask может отличаться от версии, показанной здесь.
4. Создание минимального приложения Flask
В этом руководстве мы создадим простое приложение Hello World, которое будет отображать текст «Hello World!».
Откройте текстовый редактор или среду разработки Python и создайте следующий файл:
~/my_flask_app/hello.py
from flask import Flask app = Flask ( __name__ ) @app.route ( '/' ) def hello_world (): return 'Hello World!'
Давайте проанализируем код строка за строкой.
- В первой строке мы импортируем класс Flask.
- Далее мы создаем экземпляр класса Flask.
- Затем мы используем декоратор
route()для регистрации функцииhello_worldдля маршрута/. При запросе этого маршрута вызываетсяhello_world, и клиенту возвращается сообщение «Hello World!».
Сохраните файл как hello.py и вернитесь в окно терминала.
5. Тестирование сервера разработки
Мы воспользуемся командой flask для запуска приложения, но перед этим нам нужно указать Flask, как загружать приложение, указав переменную среды FLASK_APP :
export FLASK_APP=hello.pyflask run
Приведенная выше команда запустит встроенный сервер разработки.
Вывод будет выглядеть примерно так:
* Serving Flask app "hello.py" * Environment: production WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead. * Debug mode: off * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
Если вы установили Flask на виртуальную машину и хотите получить доступ к серверу разработки Flask, то вы можете сделать сервер общедоступным, добавив --host=0.0.0.0 к команде flask run .
Откройте http://127.0.0.1:5000 в своем веб-браузере , и вы увидите сообщение «Hello World!».
Чтобы остановить сервер разработки, введите CTRL-C в терминале.
6. Деактивация виртуальной среды
Закончив работу, деактивируйте среду, введя команду deactivate , и вы вернетесь в обычную оболочку.
deactivate
Заключение
Вы узнали, как создать виртуальную среду Python и установить Flask на компьютер с CentOS 7. Чтобы создать дополнительные среды разработки Flask, повторите шаги, описанные в этом руководстве.
Если вы новичок в Flask, посетите страницу документации Flask и узнайте, как разработать свое первое приложение Flask.
Не стесняйтесь оставлять комментарии ниже.
python centos Не используете CentOS 7?
Выберите другую ОС: убунту 18.04 убунту 20.04
Связанные руководства