23.06.2025

Как написать web-приложение на Flask?

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

В данном материале, мы рассмотрим быстрый способ управления и работы с одним из них, а точнее Flask’ом! Напишем приложение, которое будет маршрутизировать запросы к необходимым функциям, зарендерим для вывода HTML-страницы, а также определим некую логику обработки запросов.

Что такое веб-приложение и чем отличается от обычного?

Скриншот №1 — Схема работы веб-приложений

Обычно серверное приложение — это совокупность инструкций и/или исполняемых файлов, конфигураций, библиотек, которые выполняют обработку запросов клиента по сетевым или файловым сокетам.

Но веб-приложение обрабатывает именно запросы по протоколам, которые работают в вебе, получая на вход полный URL и разбивает на путь обращения, метод, заголовки и тело пакета. Относительно полученных пакетов с путями Flask решает, какие функции кода должны быть выполнены. К примеру, клиент обращается к вебу с запросом вида:

https://gg[.]com/about

Flask 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

Скриншот №2 — Установка

После чего для разграничения переменных сред создадим виртуальную среду, используя venv:

python3 –m venv venv

Скриншот №3 — Виртуальное окружение

Данное решение позволит создать свой файл переменных сред и зависимостей для данного проекта, остается только заменить свой текущий файл на созданный:

source ~/web_app/venv/bin/activate

Зафиксируем используемый пакет ПО для передачи на деплой, чтобы не было проблем с зависимостями:

pip freeze > ~/web_app/requirements.txt

Скриншот №4 — Зафиксировать зависимости к проекту

А теперь создадим необходимое приложение:

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)

Скриншот №5 — Веб-приложение с простым выводом

Поясним каждую из существующих строчек:

В результате, получившийся код необходимо сохранить и запустить на интерпретаторе:

python3 ./app.py

Скриншот №6 — Запуск приложения

В конечном счете структура проекта может представлять собой следующую схему:

/your-app
/static
/dynamic
app.py
/venv

После чего необходимо перейти по одному из адресов, которые были определены:

Скриншот №7 — Web-app

Отлично, базовое приложение, которое может выводить текст – готово! Но что если нам необходимо выдавать через 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 — Создание сервера