Обработка данных в Flask

    Команда Simple-Server
    03.06.2026
    8 мин

    Материал подготовлен командой Simple-Server для администраторов VPS и выделенных серверов. Команды и пути проверяйте на тестовой машине перед production.

    Кратко о задаче

    Мы будем использовать PyCharm + pipenv на Windows 10. В интернете достаточно руководств для установки такого комплекта на другие операционные системы. А здесь расскажем, как установить его на Win 10.

    Переходим на официальный сайт www.python.org/downloads/, выбираем версию Python под нашу операционную систему, скачиваем и устанавливаем, следуя всем инструкциям инсталлятора.

    Pipenv — это пакет управления виртуальным окружением python. Для того, чтобы скачать его открываем командную строку Windows и выполняем вот эту команду:

    PyCharm — это среда разработки для языка программирования Python. Чтобы её установить, заходим на официальный сайт www.jetbrains.com/ru-ru/pycharm/, выбираем версию Community (или Professional, если вы готовы оформить подписку), скачиваем и устанавливаем, также следуя инструкциям установщика.

    В левом верхнем углу нажимаем «File» -> «New Project»:

    • 1 — каталог будущего проекта;
    • 2 — выбор пакета окружения;
    • 3 — путь к базовому интерпретатору Python;
    • 4 — путь к исполняемому файлу pipenv;

    После того, как настроили и указали все необходимые параметры, нажимаем «Create».

    Важно! Необходимо, чтобы в путях не было каталогов с названиями на кириллице — это может привести к ошибке.

    После создания проекта нажимаем на кнопку “Terminal” в нижней части среды разработки и выполняем эту команду:

    Если вы выполнили правильно все шаги до этого момента, то начнется загрузка Flask.

    При возникновении ошибки «Выполнение сценариев в этой системе отключено» необходимо запустить терминал PowerShell от имени администратора и выполнить в нём команду Set-ExecutionPolicy RemoteSigned. После чего ввести [A].

    После установки необходимых компонентов можно перейти к непосредственному с взаимодействию с фреймворком. Сначала импортируйте Flask:

    Напишем небольшое приложение Flask, на основе которого продемонстрируем работу с URL запросами:

    from flask import Flask app = Flask(__name__) @app.route("/Simple-Server") def Simple-Server(): return "Это страница /Simple-Server" @app.route("/blog") def blog(): return "Это страница /blog" @app.route("/cloud") def cloud(): return "Это страница /cloud" if __name__ == "__main__": app.run()

    Прокомментируем подробнее, что делает этот код:

    • В первую очередь мы импортируем Flask;
    • Затем мы создаем экземпляр app класса Flask;
    • Теперь описываем декоратор .route для каждого отдельного URL: при обработке того или иного URL будет вызываться соответствующая функция;
    • Для запуска приложения используем .run();

    Теперь запустим его. В консоли мы можем найти адрес нашего локального сайта:

    Перейдем по нему и… ничего не получим:

    Такой результат мы получили из-за того, что не описали декоратор для URL-запроса, содержащего только корневой путь «/». Теперь попробуем перейти по другим URL-адресам, для которых описали необходимые декораторы и функции:

    Также при каждом подключении в консоль выводится информация о нём:

    В этом случае мы использовали и обрабатывали GET-запрос — получали информацию из URL. Но обработка данных входящих запросов в Flask**** этим не ограничивается. Теперь попробуем получить из URL-запроса перечень различной информации.

    С помощью URL-запроса можно передавать серверу различные аргументы (они же query-параметры). Наверняка вам приходилось видеть в запросах знак вопроса. Знак вопроса в URL-запросе означает, что после него идут аргументы. Предположим, у нас есть такой запрос:

    Simple-Server.com/blog?framework=flask&language=python&version=3.10

    В этом запросе переданы пары ключ-значение через амперсанд. Если разобрать этот запрос на части, то мы получим такие пары:

    framework=flask language=python version=3.10

    Напишем функцию get_example(), которая произведет извлечение данных из запроса в Flask Python, а в качестве ответа будет ответа сообщение с полученным данными:

    from flask import request @app.route("/get_example") def get_example(): framework = request.args.get('framework') language = request.args.get('language') version = request.args.get('version') return "language = {};framework = {}; version = {} ".format(language, framework, version)
    1. Импортирует класс request и его методы;
    2. Описывает декоратор для URL /get_example;
    3. Разбивает запрос на значения и присваивает их соответствующим ключам;
    4. Отправляет в качестве ответа три пары ключ-значение;

    Теперь перейдем по этому адресу http://127.0.0.1:5000/get_example?language=python&framework=flask&version=3.10:

    Как видим, код правильно обработал запрос.

    По умолчанию .route() обрабатывает только GET-запросы. В flask можно обрабатывать и POST-запросы. Добавим в наше приложение flask формы авторизации логин-пароль:

    @app.route('/authorization', methods=['GET', 'POST']) def authorization(): if request.method == 'POST': Login = request.form.get('Login') Password = request.form.get('Password') if Login=="admin" and Password=="admin": return "Correct" else: return "Incorrect" return ''' <form method="POST"> <div><label>Login: <input type="text" name="Login"></label></div> <div><label>Password: <input type="text" name="Password"></label></div> <input type="submit" value="Enter"> </form>'''

    Подробно распишем работу этого декоратора в приложении на Flask:

    • Указываем в аргументах декоратора, что обработка запросов связана как с GET, так и с POST;
    • Сначала срабатывает запрос GET (последний return): выводим форму для логина и пароля;
    • После ввода в поля логина и пароля декоратор получает запрос POST с данными и обрабатывает их;
    • Если логин и пароль верные, то возвращаем сообщение «Correct»;
    • Если логин и пароль неверные, то возвращаем сообщение «Incorrect»;

    Перейдем по 127.0.0.1:5000/authorization и проверим работу декоратора:

    Вот полный код нашего приложения:

    from flask import Flask app = Flask(__name__) @app.route("/Simple-Server") def Simple-Server(): return "Это страница /Simple-Server" @app.route("/blog") def blog(): return "Это страница /blog" @app.route("/cloud") def cloud(): return "Это страница /cloud" from flask import request @app.route("/get_example") def get_example(): framework = request.args.get('framework') language = request.args.get('language') version = request.args.get('version') return "language = {};framework = {}; version = {} ".format(language, framework, version) @app.route('/authorization', methods=['GET', 'POST']) def authorization(): if request.method == 'POST': Login = request.form.get('Login') Password = request.form.get('Password') if Login=="admin" and Password=="admin": return "Correct" else: return "Incorrect" return ''' <form method="POST"> <div><label>Login: <input type="text" name="Login"></label></div> <div><label>Password: <input type="text" name="Password"></label></div> <input type="submit" value="Enter"> </form>''' if __name__ == "__main__": app.run()

    Нужен сервер для практики? Закажите VPS на Simple-Server — root-доступ, NVMe, DDoS-защита и поддержка 24/7.

    VPS для проекта

    VPS с root-доступом, NVMe и поддержкой 24/7 на Simple-Server.

    StarterVDS

    490

    в месяц

    1 ядро

    1 ГБ RAM

    20 ГБ NVMe

    • 1 IPv4
    • KVM
    • Root-доступ
    • Безлимитный трафик
    Заказать VPS
    Рекомендуем

    PerformanceVDS

    1190

    в месяц

    2 ядра

    4 ГБ RAM

    60 ГБ NVMe

    • 1 IPv4
    • KVM
    • Root-доступ
    • Базовая DDoS-защита
    Заказать VPS

    Нужна другая конфигурация? Посмотрите все доступные тарифы

    Все тарифы VPS

    Похожие статьи, которые могут быть вам интересны