Сейчас веб это самый простой и распространённый способ предоставления услуг, сервисов. Практически все сферы от онлайн-банкинга до доставки уже имеют или планируют внедрить веб-приложения в свою инфраструктуру. Существует множество фреймворков, которые объединяют в себе библиотеки и инструкции для разработки таких приложений: Django, Flask, ASP.NET Core, Laravel и т.д.
В данном материале, мы рассмотрим быстрый способ управления и работы с одним из них, а точнее Flask’ом! Напишем приложение, которое будет маршрутизировать запросы к необходимым функциям, зарендерим для вывода HTML-страницы, а также определим некую логику обработки запросов.
Что такое веб-приложение и чем отличается от обычного?

Обычно серверное приложение — это совокупность инструкций и/или исполняемых файлов, конфигураций, библиотек, которые выполняют обработку запросов клиента по сетевым или файловым сокетам.
Но веб-приложение обрабатывает именно запросы по протоколам, которые работают в вебе, получая на вход полный URL и разбивает на путь обращения, метод, заголовки и тело пакета. Относительно полученных пакетов с путями Flask решает, какие функции кода должны быть выполнены. К примеру, клиент обращается к вебу с запросом вида:
https://gg[.]com/aboutFlask app имеет следующую структуру:
from flask import Flask, render_template
app = Flask(__name__)
@app.route('/about')
def index():
return render_template('index.html')Получив пакет, Flask начинает искать путь, соответствующий запросу и метода клиента. В данном случае он сразу маршрутизирует запрос на @app.route(‘/about’), где выполнится функция my:
def my():
return render_template('my.html')Соответственно, клиент в ответ получит страницу формата HTML, который вернет сервер-приложений.
Как быстро написать приложение на Flask Python?
Создание веб-приложения от обычного почти ничем не отличается на начальных этапах, это такая же директория содержащая набор инструкций, библиотек и статического, и динамического контента.
Создадим папку проекта и установим все необходимые зависимости:
mkdir –p ~/web_app/ && cd ~/web_app && apt install python3 python-pip3 flask python3-venv -yАльтернативный способ установки flask python подразумевает использование pip-менеджера пакетов:
pip install flask 
После чего для разграничения переменных сред создадим виртуальную среду, используя venv:
python3 –m venv venv 
Данное решение позволит создать свой файл переменных сред и зависимостей для данного проекта, остается только заменить свой текущий файл на созданный:
source ~/web_app/venv/bin/activate Зафиксируем используемый пакет ПО для передачи на деплой, чтобы не было проблем с зависимостями:
pip freeze > ~/web_app/requirements.txt 
А теперь создадим необходимое приложение:
nano ~/web_app/app.py Пропишем основные инструкции для работы Flask app:
from flask import Flask
app = Flask(__name__)
@app.route('/about')
def about_func():
return ('Wake up! Patrick!')
if __name__ == '__main__':
app.run(debug=True)
Поясним каждую из существующих строчек:
- from flask import Flask, render_template позволяет импортировать нужные инструкции из библиотеки;
- app = Flask(__name__) инициализирует приложение;
- @app.route(‘/’) декоратор, который связывает запрос с функцией;
- def main_page():return render_template(‘main.html’) функция, передаваемая на исполнение;
- app.run(debug=True) запуск сервера-приложений.
В результате, получившийся код необходимо сохранить и запустить на интерпретаторе:
python3 ./app.py
В конечном счете структура проекта может представлять собой следующую схему:
/your-app
/static
/dynamic
app.py
/venvПосле чего необходимо перейти по одному из адресов, которые были определены:

Отлично, базовое приложение, которое может выводить текст – готово! Но что если нам необходимо выдавать через flask HTML страницы, которые были в заранее подготовлены или JSON-файлы? Для этого добавим к существующей конфигурации пару библиотек и строк кода:
from flask import Flask, render_template
app = Flask(__name__)
@app.route('/')
def main_page():
return render_template('main.html')
@app.route('/id/<username>')
def to_dict(username):
data = {
'username': {username},
}
if __name__ == ‘__main__’:
app.run(debug=True)
Теперь соответственно, при вызове путей в URL /id/<username> и / мы будем получать результаты работы связанных функций.
Как обрабатывать другие методы в запросах?
Для работы с методами, кроме GET, необходимо явно указать их, при настройке маршрутов к функциям:
from flask import request
import os
@app.route('/click', methods=['DELETE'])
def click():
name = request.form['value']
os.remove(f"/home/{name}")
return 'Complete task!'После чего по вызову метода DELETE с переданной формой обращения, мы сможем удалять файлы из папки /home. Фреймворк имеет еще множество различных способов работы и реализации логики, которые вы можете просмотреть в нашем пуле инструкций по нему! В данном материале мы рассмотрели, как по базовым шагам можно создать Flask приложение.
При нехватке собственных мощностей можно воспользоваться облачными серверами от Serverspace, для этого перейдем к созданию сервера, на любой из двух платформ vStack cloud или же VMware cloud. Нажмем на кнопку Создать сервер и выберем конфигурацию, подходящую под наши задачи, затем нажмем кнопку Создать:
Скриншот №8 — Создание сервера