Flask. Быстрый старт с нуля.

Начнем статью не с воды, а сразу с запуска нашего первого приложения на фреймворке Flask. Для этого создадим новый проект в PyCharm, настроим виртуальное окружение (подробнее как это делать), активируем виртуальное окружение, и установим фреймворк с помощью команды в терминале:

pip install flask

Если в нашем проекте еще нет файлов, то создадим его, например main.py, и напишем само приложение:

from flask import Flask

app = Flask(__name__)

@app.route('/')
def index():
    return 'Hello World!'

Вуаля, логика элементарной приложухи готова. Мы просто создали объект Flask с аргументом __name__, потому что  конструктор должен принимать один обязательный аргумент, и его будет достаточно для автоматической настройки сервера. С помощью декоратора route() привязали URL к функции, в нашем случае просто корень. И с помощью функции index() возвращаем самую знаменитую строку из мира разрабов ‘Hello World!’.

Теперь проверим работу запустив приложение. Для этого пишем в терминале set FLASK_APP=НАЗВАНИЕ_ФАЙЛА (можно env:FLASK_APP = "main.py") если работаем в винде, или export FLASK_APP=НАЗВАНИЕ_ФАЙЛА.РАСШИРЕНИЕ если линуксоиды. Я отношусь ко второму типу:

export FLASK_APP=main.py

Этой строкой мы сообщили какой файл необходимо запустить. А теперь даем команду на запуск:

flask run

В терминале мы должны увидеть такие строки:

Serving Flask app ‘main.py’
Debug mode: off
WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.
Running on http://127.0.0.1:5000
Press CTRL+C to quit

Всё, приложение запущено. Для просмотра результата нужно просто перейти по ссылке: http://127.0.0.1:5000

Любые взаимодействия с приложением будут отображаться в терминале. Понаблюдайте, комментировать там особо нечего.

Еще один способ запустить наше приложение через терминал, это прописать команду:

flask --app main.py run

Кроме того, мы можем добавить в наш код следующие строки:

if __name__ == '__main__':

    app.run()

Теперь приложение можно запустить стандартным для среды разработки способом или через терминал командой python main.py  из под Windows или python3 main.py из под UNIX-подобных систем (макак тоже касается). А если в аргументы app.run() передать debug=True, то все наши изменения будут воспроизводиться запущенным приложением в режиме реального времени, без необходимости перезапуска.

Вот таким нехитрым способом ваше приложение может возвращать любые данные, а не только строку ‘Hello World!’. Например HTML страницу.

Примеры более сложных приложений Flask будут в следующих статьях. А пока для своих экспериментов вооружайтесь официальной документацией или документацией на русском языке.

И не забудьте присоединиться к чату почти программистов. Нужно объединяться!