Python и разработка простого веб-приложения, использующего технологии машинного обучения
Тот, кто занимается машинным обучением (Machine Learning, ML), обычно, реализуя различные проекты, выполняет следующие действия: сбор данных, их очистка, разведочный анализ данных, разработка модели, публикация модели в локальной сети или в интернете. Вот хорошее видео, в котором можно узнать подробности об этом.
Жизненный цикл проекта в сфере машинного обучения
Этап публикации модели завершает жизненный цикл ML-проектов. Он так же важен для дата-сайентистов и специалистов по машинному обучению, как и другие этапы. Обычные подходы к публикации моделей предусматривают использование универсальных фреймворков, таких, как Django или Flask. Главные проблемы тут заключаются в том, что для применения подобных инструментов требуются особые знания и навыки, и в том, что работа с ними может потребовать немалых затрат времени.
Автор статьи, перевод которой мы сегодня публикуем, хочет рассказать о том, как, используя Python-библиотеки streamlit, pandas и scikit-learn, создать простое веб-приложение, в котором применяются технологии машинного обучения. Он говорит, что размер этого приложения не превышает 50 строк. Статья основана на этом видео, которое можно смотреть параллельно с чтением. Инструменты, которые будут здесь рассмотрены, кроме прочего, позволяют ускорить и упростить развёртывание ML-проектов.
Обзор модели, определяющей вид цветка ириса
Сегодня мы создадим простое веб-приложение, использующее технологии машинного обучения. Оно будет классифицировать цветки ириса из выборки Фишера, относя их к одному из четырёх видов: ирис щетинистый (iris setosa), ирис версиколор (iris versicolor), ирис виргинский (iris virginica). Возможно, вы уже видели множество ML-примеров, построенных на основе этого знаменитого набора данных. Но, надеюсь, то, что я тут буду рассматривать ещё один такой пример, вам не помешает. Ведь этот набор — он как «lorem ipsum» — классический бессмысленный текст-заполнитель, который вставляют в макеты страниц.
Нам, чтобы построить модель и опубликовать её где-нибудь, понадобятся библиотеки streamlit, pandas и scikit-learn. Взглянем на общую схему проекта. Он будет состоять из двух больших частей: фронтенд и бэкенд.
Во фронтенд-части приложения, а именно, на веб-странице, будет боковая панель, находящаяся слева, в которой можно будет вводить входные параметры модели, которые связаны с характеристиками цветков ириса: длина лепестка (petal length), ширина лепестка (petal width), длина чашелистика (sepal length), ширина чашелистика (sepal width). Эти данные будут передаваться бэкенду, где предварительно обученная модель будет классифицировать цветки, используя заданные характеристики. Фактически, речь идёт о функции, которая, получая характеристики цветка, возвращает его вид. Результаты классификации отправляются фронтенду.
В бэкенд-части приложения то, что ввёл пользователей, сохраняется в датафрейме, который будет использоваться в виде тестовых данных для модели. Потом будет построена модель для обработки данных. В ней будет применяться алгоритм «случайный лес» из библиотеки scikit-learn. И наконец, модель будет применена для классификации данных, введённых пользователем, то есть — для определения вида цветка. Кроме того, вместе со сведениями о виде цветка, будут возвращаться и данные о прогностической вероятности. Это позволит нам определить степень достоверности результатов классификации.
Установка библиотек
Разработка веб-приложения
Теперь напишем код приложения. Проект у нас довольно скромный. Он состоит из менее чем 50 строк кода. А если точнее — то их тут всего 48. Если же этот код «уплотнить», избавившись от комментариев и пустых строк, то размер текста программы сократится до 36 строк.
Разбор кода
Теперь разберём этот код.
▍Импорт библиотек
▍Формирование боковой панели
▍Создание модели
Получение сведений о виде цветка с помощью обученной модели.
Получение сведений о прогностической вероятности.
▍Формирование основной панели
Данный код описывает второй подзаголовок основной панели. В этом разделе будут выведены данные о видах цветков.
Вывод третьего подзаголовка для раздела, в котором будет находиться результат классификации.
Выводим заголовок четвёртого (и последнего) раздела основной панели. Здесь будут представлены данные о прогностической вероятности.
Вывод данных о прогностической вероятности.
Запуск веб-приложения
Если всё идёт как надо, через некоторое время вы должны увидеть следующее:
То, что вы увидите, будет похоже на следующий рисунок.
Скриншот веб-приложения для классификации цветков ириса. Если щёлкнуть по стрелке, находящейся в левом верхнем углу окна, расположенного в верхней части рисунка, будет открыта боковая панель
Итоги
Можете себя поздравить: только что вы создали веб-приложение, в котором используются технологии машинного обучения. Вы вполне можете упомянуть подобное приложение в своём портфолио ML-проектов, а если хотите, можете опубликовать его на своём веб-сайте (правда, вы, вполне возможно, решите построить собственную модель, используя другие данные).
Пользуетесь ли вы библиотекой streamlit?
Python и веб-разработка: краткое руководство
Jun 22 · 7 min read
За последние несколько лет популярность Python резко возросла, и он даже превзошел Java. С развитием машинного обучения, анализа данных и веб-приложений многие разработчики стали чаще использовать данный язык программирования, так как он обладает множеством полезных библиотек, простым синтаксисом и мобильностью. Без сомнения, сейчас наиболее подходящее время, чтобы научиться работать с Python.
Итак, в данной статье мы ответим на следующие вопросы:
Веб-разработка — что это?
Почему Python подходит для веб-разработки?
Преимущества разработки веб-приложений в Python:
Другие языки программирования для веб-разработки:
Веб-фреймворки Python
Что такое фреймворки и почему они так важны? Веб-фреймворк — это набор пакетов и модулей, состоящих из предварительно написанного стандартизированного кода. Таким образом, код обеспечивает разработку веб-приложений, делая этот процесс быстрее и проще, а программы более надежными и масштабируемыми. Другими словами, фреймворки уже обладают встроенными компонентами, которые упрощают вашу работу над проектом.
Веб-фреймворки Python используются только в бэкенде для серверных технологий, помогая в маршрутизации URL-адресов, HTTP-запросах, доступе к базам данных и веб-безопасности. Фреймворк не считается обязательным, однако мы рекомендуем использовать его, так как он поможет разработать сложные приложения за достаточно короткое время.
Какие веб-фреймворки Python наиболее популярны?
Django — это быстрый, безопасный и масштабируемый веб-фреймворк Python, который предлагает высокий уровень и открытый исходный код. Django обладает мощной поддержкой сообщества и подробной документацией.
Фреймворк включает комплексный пакет, в котором вы получите панель управления, интерфейс базы данных и структуру каталога после создания приложения. Кроме того, он включает большое количество функций, поэтому вам не придется добавлять отдельные библиотеки. Аутентификация пользователей, механизм шаблонов, маршрутизация, миграция схемы базы данных и т.д. — все это примеры возможностей, которые предлагает фреймворк.
Django отличается гибкостью. Он позволяет работать как с минимально жизнеспособным продуктами, так и с более развитыми компаниями. Instagram, Dropbox, Pinterest и Spotify — все эти компании также используют Django.
Flask считается микрофреймворком, который представляет минималистичный веб-фреймворк. Но по сравнению с Django он не обладает такими функциями, как механизм веб-шаблонов, авторизация учетной записи и аутентификация.
Flask отличается простотой в использовании. Поэтому вы можете добавить расширения и библиотеки, которые вам нужны при написании кода.
Идея Flask заключается в том, что данная платформа предоставляет только компоненты, необходимые для создания приложения. Некоторые функции включают встроенный сервер разработки, отправку запросов Restful, обработку Http-запросов и многое другое. Flask также является распространенным и мощным веб-фреймворком, поскольку он используется крупными компаниями, такими как Netflix, Linkedin и Uber.
Другие известные фреймворки
Возможно, вы зададите вопрос — какой же фреймворк стоит выбрать? Но мы не сможем дать вам однозначный ответ. Для начала, оцените свой уровень веб-разработчика. Если вы обладаете большим опытом, то стоит отдать предпочтение продвинутым программам. Однако, если вы начинающий разработчик, то попробуйте использовать фреймворк со встроенной технической поддержкой, например Django.
Кроме того, спросите себя, хотите ли вы создать «основополагающую» кодовую базу или же сформировать её основы? Если вы предпочитаете первый вариант, то стоит использовать Django, а если второй, то Flask. Но стоит отметить, что оба инструмента обладают одинаковой функциональностью.
Библиотеки Python для веб-разработки
Ниже представлено несколько полезных библиотек Python для веб-разработки:
Дорожная карта для веб-разработки с использованием Python
Шаг 1:HTML + CSS
В начале веб-разработки стоит изучить HTML и CSS, которые являются основой обучения при создании сайтов. Гораздо важнее научиться структурировать адаптивные статические страницы, чтобы начать свой путь веб-разработки. Также полезно узнать про такие понятия, как Интернет, HTTP, браузер, DNS, хостинг и многое другое.
Вы можете также изучить такие CSS-фреймворки, как Materialize или Bootstrap. Они значительно ускорят вашу работу.
Шаг 2: Javascript
Следующий шаг, который необходимо сделать — это изучить Vanilla Javascript. Вам стоит ознакомиться с такими базовыми концепциями, как типы данных, переменные, общие соглашения, работа со строками, арифметика, управляющие операторы, циклы и т.д. Знание этих основ упростит применение Javascript к коду на стороне клиента.
Шаг 3: DOM & jQuery
Затем вам стоит научиться управлять еще одной библиотекой Javascript — jQuery. С ее помощью процесс манипулирования DOM станет гораздо проще. Теперь у вас есть представление о том, как создать динамические страницы.
Фронтенд-фреймворк
Для создания функционального веб-приложения с полным стеком рекомендуется изучать фронтенд-фреймворк. Такой навык часто является обязательным требованием при найме front-end или full-stack разработчика.
Шаг 4: Python
Теперь перейдем к бэкенду. Прежде чем приступить к манипуляциям с DOM, необходимо знать основы Python и Javascript. Эти базовые знания подготовят вас к Django. Изучение Python не вызывает трудностей, так как многие концепции напоминают Javascript.
Шаг 5: База данных Django +
С помощью Django вы сможете настроить бэкенд-среду и сформировать бизнес-логику. Вам также стоит узнать о том, как создать запросы, изучить базу данных SQLite и CRUD- функцию. В таком случае, вы сможете разработать приложение с полным стеком.
Как создать первое веб-приложение в Python
Запустите приложение Flask «hello world» в качестве введения в веб-фреймворки Python
Установка Flask
Первое, что необходимо сделать — это установить Flask. В зависимости от вашей версии Python, вам придется использовать pip или pip3.
Приложение Flask
Затем, создайте файл под названием hello.py со следующим кодом:
Заключение
Теперь вы имеете представление о том, как использовать Python для веб-разработки. Однако обучение на этом не заканчивается. Поэтому продолжайте искать надежные ресурсы, онлайн-курсы и практические проекты, чтобы улучшить свои навыки.
Введение в создание веб-приложений на Python
В создании веб-приложений часто требуется использование различных фреймворков. В данной статье речь пойдет именно о них.
С помощью фреймворков разработка больших надежных обслуживаемых веб-приложений становится намного проще. Также она уберегает разработчиков от повторного написания одного и того же кода снова и снова.
С помощью фреймворка вы можете реализовать большинство этих функций.
Например, фреймворк Flask не поддерживает базы данных. Для их использования потребуется отдельный модуль. А вот фреймворк Django по умолчанию поддерживает базы данных.
Зачем использовать фреймворки при создании веб-приложений?
Зачастую у нас нет времени на решение тех проблем, которые были решены до нас. И тут на помощь приходят фреймворки. С другой стороны, если вы опытный веб-разработчик, фреймворк может предоставлять не весь спектр функций, который требуется.
Какие существуют фреймворки Python?
Django и Flask – самые популярные веб-фреймворки. Однако ознакомиться с другими фреймворками не помешает.
Вот некоторые из них:
Django
Доступ к базе данных осуществляется через объектно-реляционное преобразование: вы определяете свои модели данных в Python, и Django начинает работать с реляционными системами управления базами данных (СУБД). Однако, если вам нужно, вы можете написать свои собственные SQL-запросы в Django. Также в этом фреймворке поддерживается маршрутизация URL-адресов.
Если вы хотите узнать о Django побольше, прочтите это.
Знаете ли вы, что такие сайты, как NASA, BitBucket и Pinterest были написаны с помощью Django?
Flask
Flask очень прост и интуитивно понятен:
Платформа поддерживает маршрутизацию URL-адресов, шаблоны (с Jinja2), управление сеансами и имеет некоторые фишки в области безопасности.
Если вы хотите узнать о Flask побольше, прочтите это.
Знаете ли вы, что изначально Flask был придуман как первоапрельская шутка?
Создание веб-приложения с использованием Python Flask и MySQL
Russian (Pусский) translation by Yuri Yuriev (you can also view the original English article)
В этой серии мы будем использовать Python, Flask и MySQL для создания простого веб-приложения с нуля. Это будет приложение списка дел, в котором пользователи смогут зарегистрироваться, подписаться и создать свой список желаний.
Введение в Python Flask
Установка Flask
Установить Flask легко и просто. С менеджером пакетов pip нужно сделать только:
Теперь определим основной путь / и соответствующий ему обработчик запросов:
Затем проверьте, является ли исполняемый файл главной программой и запустите приложение:
Сохраните изменения и выполните app.py :
Укажите браузеру на http://localhost:5000/ и у вас должно появиться приветственное сообщение.
Создание домашней страницы
Во-первых, при запуске приложения мы должны показать домашнюю страницу с последними элементами списка дел, добавленными пользователями. Итак, добавим нашу домашнюю страницу в папку приложения.
Измените основной метод, чтобы вернуть созданный файл шаблона.
Сохраните изменения и перезапустите сервер. Указав браузеру http://localhost:5000/ вы увидите следующее:
Создание страницы регистрации
Шаг 1. Настройка базы данных
Введите требуемый пароль и при входе в систему выполните следующую команду для создания базы данных:
Шаг 2. Создание интерфейса регистрации
В app.py добавьте метод showSignUp для отображения страницы регистрации после поступления запроса в /showSignUp :
Сохраните изменения и перезапустите сервер. Нажмите кнопку Sign Up на главной странице и у вас должна получиться такая страница регистрации:
Шаг 3. Внедрение метода регистрации
Чтобы прочитать опубликованные значения, нам нужно импортировать request из Flask.
С помощью request мы прочитаем значения, как показано ниже:
Как только значения прочитаны, мы проверяем, верны ли они, а пока давайте вернём простое сообщение:
Шаг 4. Создание запроса на регистрацию
Итак, давайте присоединим событие нажатия кнопки, как показано:
Сохраните изменения и перезапустите сервер. На странице Sign Up заполните данные и нажмите Sign Up. Проверьте браузер, у вас должно получиться следующее сообщение:
Шаг 5: вызов хранимой процедуры MySQL
Импортируйте MySQL внутрь app.py :
Ранее мы определили наше приложение:
Наряду с этим, включая следующие конфигурации MySQL:
Сначала давайте создадим соединение MySQL:
Когда соединение установлено, нам понадобится cursor для запроса stored процедуры. Через conn соединение создаём курсор.
Перед вызовом stored процедуры, давайте сделаем надёжный пароль с помощником от Werkzeug. Импортируйте модуль в app.py :
Используйте модуль для создания хэшированного пароля.
Теперь вызываем процедуру sp_createUser :
Если процедура выполнена успешно, мы зафиксируем изменения и вернем сообщение об успешном завершении.
Подводя итоги
Исходный код к этому уроку доступен на GitHub.
Создание веб-приложения с помощью Flask в Python 3
Published on May 13, 2020
Автор выбрал фонд Free and Open Source Fund для получения пожертвования в рамках программы Write for DOnations.
Введение
Flask — это небольшой и легкий веб-фреймворк, написанный на языке Python, предлагающий полезные инструменты и функции для облегчения процесса создания веб-приложений с использованием Python. Он обеспечивает гибкость и является более доступным фреймворком для новых разработчиков, так как позволяет создать веб-приложение быстро, используя только один файл Python. Flask — это расширяемая система, которая не обязывает использовать конкретную структуру директорий и не требует сложного шаблонного кода перед началом использования.
В рамках этого обучающего руководства вы будете использовать инструментарий Bootstrap, чтобы сделать ваше приложение визуально привлекательным. Bootstrap поможет вам включить в ваше веб-приложение быстрые веб-страницы, чтобы приложение можно было использовать на мобильных браузерах без написания для этого собственных кодов HTML, CSS и JavaScript. Инструментарий дает возможность изучить работу Flask.
Flask использует механизм шаблонов Jinja для динамического создания HTML-страниц с использованием знакомых понятий в Python, таких как переменные, циклы, списки и т. д. Вы будете использовать эти шаблоны в рамках этого проекта.
С помощью этого обучающего руководства вы создадите небольшой веб-блог с использованием Flask и SQLite в Python 3. Пользователи приложения могут видеть все посты в вашей базе данных и нажимать на заголовки постов для просмотра их содержания. Кроме того, присутствует возможность добавлять новый пост в базу данных и редактировать или удалять существующий пост.
Предварительные требования
Перед началом выполнения этого руководства вам потребуется:
Шаг 1 — Установка Flask
Если вы еще не активировали среду программирования, убедитесь, что находитесь в директории проекта ( flask_blog ), и с помощью следующей команды активируйте среду:
Данный префикс служит индикатором того, что среда env активна (имя среды может быть другим, в зависимости от того, как вы назвали ее при создании).
Примечание. Вы можете использовать Git, систему контроля версий, для эффективного управления и отслеживания процесса разработки вашего проекта. О том, как использовать Git, вы можете узнать из нашей статьи Введение в Git: установка, использование и ответвления.
Чтобы установить Flask, запустите следующую команду:
После завершения установки запустите следующую команду, чтобы подтвердить установку:
В результате вы увидите номер версии, который будет выглядеть примерно так:
Вы создали папку проекта, виртуальную среду и установили Flask. Теперь вы готовы переходить к настройке базового приложения.
Шаг 2 — Создание базового приложения
Теперь, когда вы настроили среду программирования, можно начинать использовать Flask. На этом этапе вы создадите небольшое веб-приложение внутри файла Python и запустите его для начала работы сервера, который отобразит определенную информацию в браузере.
В директории flask_blog откройте файл с именем hello.py для редактирования. Используйте nano или любой другой текстовый редактор:
Этот файл hello.py будет служить минимальным примером того, как обрабатывать запросы HTTP. Внутри него импортируйте объект Flask и создайте функцию, которая возвращает ответ HTTP. Напишите следующий код внутри файла hello.py :
Функция просмотра hello() возвращает строку ‘Hello, World!’ в качестве ответа.
Сохраните и закройте файл.
Для запуска вашего веб-приложения сначала укажите Flask, где искать приложение (в вашем случае файл hello.py ) с помощью переменной среды FLASK_APP :
Затем запустите его в режиме разработки с помощью переменной среды FLASK_ENV :
И наконец, запустите приложение, используя команду flask run :
После запуска приложения вы увидите примерно следующее:
В предыдущем выводе представлена следующая информация:
Откройте браузер и введите URL http://127.0.0.1:5000/ . Вы получите строку Hello, World! в качестве ответа. Это подтверждает то, что ваше приложение успешно работает.
Внимание. Flask использует простой веб-сервер для обслуживания нашего приложения в среде разработки, что также означает, что отладчик Flask работает для облегчения работы по обнаружению ошибок. Этот сервер для разработки не должен использоваться при развертывании в производственной среде. Дополнительную информацию можно найти в документации Flask на странице Опции развертывания или в обучающем руководстве по развертыванию Flask.
Теперь у вас есть небольшое веб-приложение Flask. Вы запустили ваше приложение и вывели информацию в браузере. Далее вы будете использовать файлы HTML в вашем приложении.
Шаг 3 — Использование шаблонов HTML
Сейчас ваше приложение отображает только простое сообщение без какого-либо HTML. Веб-приложения в основном используют HTML для отображения информации для посетителя, поэтому теперь вы можете заняться включением в ваше приложение файлов HTML, которые можно отобразить в браузере.
На этом этапе вы создадите свое основное приложение Flask в новом файле.
Функция просмотра index() возвращает результат вызова render_template() с index.html в качестве аргумента. Это дает указание render_template() искать файл с именем index.html в папке шаблонов. И папка, и файл еще отсутствуют. Вы получите сообщение об ошибке, если запустите приложение на этом этапе. Тем не менее при запуске вы уже будете знать об этой часто встречающейся ошибке. Затем вы сможете исправить ошибку, создав необходимые папку и файл.
Сохраните и закройте файл.
Если вы нажмете на эту строку, отладчик откроет код, и у вас будет дополнительный контекст для понимания и решения проблемы.
После этого добавьте следующий код HTML внутри index.html :
Сохраните файл и используйте свой браузер для перехода на http://127.0.0.1:5000/ или обновите страницу. Теперь браузер должен отобразить текст Welcome to FlaskBlog в теге
Помимо папки templates веб-приложения Flask также обычно имеют папку static для хостинга статичных файлов, таких как файлы CSS, файлы JavaScript и изображения, которые использует приложение.
После этого откройте файл style.css в директории css для редактирования:
Добавьте следующее правило CSS в файл style.css :
Код CSS добавит границу, изменит цвет на коричневый, выравняет текст по центру и добавит небольшое дополнение к меткам
Сохраните и закройте файл.
Далее откройте файл шаблона index.html для редактирования:
Добавьте ссылку в файл style.css внутри раздела файла шаблона index.html :
Для этого вы используете вспомогательную функцию url_for() для генерирования подходящего расположения файла. Первый аргумент указывает, что вы связаны со статичным файлом, а второй — это путь файла внутри статичной директории.
Сохраните и закройте файл.
После обновления страницы индекса вашего приложения вы увидите, что цвет текста Welcome to FlaskBlog теперь коричневый, расположен по центру и добавлен внутри границы.
Используйте язык CSS для оформления стиля приложения и придавайте ему более привлекательный вид с помощью своего собственного дизайна. Однако, если вы не веб-дизайнер или не знакомы с CSS, воспользуйтесь инструментарием Bootstrap, который предлагает простые в использовании компоненты для оформления приложения. В данном проекте мы будем использовать Bootstrap.
Для создания базового шаблона сначала необходимо создать файл с именем base.html внутри директории templates :
Введите следующий код в шаблоне base.html :
Сохраните и закройте файл после редактирования.