Начнем статью не с воды, а сразу с запуска нашего первого приложения на фреймворке 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 будут в следующих статьях. А пока для своих экспериментов вооружайтесь официальной документацией или документацией на русском языке.
И не забудьте присоединиться к чату почти программистов. Нужно объединяться!