В этой статье я представлю Streamlit, мою любимую библиотеку веб-приложений для Python. Он позволяет создавать прекрасные приложения для обработки и анализа данных или машинного обучения (или, может быть, некоторые другие) в мгновение ока.

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

В этой статье вы узнаете, как создать веб-приложение для любых целей, используя чистый код Python с библиотекой Streamlit. Конечно, чтобы понять потенциал Streamlit, нам нужно взглянуть на примеры, разработанные с его помощью. Вы можете получить доступ к некоторым из них здесь. Одним из примеров является приложение классификации болезней растений.

Как видите, приложение Амина довольно продвинутое и может использоваться человеком, который ничего не знает о том, как работает классификация. Он может просто загрузить изображение и увидеть результат!

В этом руководстве я представлю некоторые важные функции Streamlit, создав простое приложение. Если вы хотите глубже изучить Streamlit, воспользуйтесь документацией, которая содержит все возможности библиотеки. Давай сделаем это!

Установка Streamlit

Во-первых, вам необходимо установить Streamlit. Вы можете сделать это с помощью PIP, выполнив в терминале следующую команду:

pip install streamlit

Могут возникнуть проблемы с вашей версией Python, поэтому обязательно установите Streamlit в Python 3.6+.

Чтобы создать приложение, вам необходимо импортировать Streamlit в файл Python и использовать определенную команду в терминале.

Для нашего приложения мы создадим папку streamlit_app и файл app.py. В этом файле .py нам нужно поместить команду:

import streamlit

Затем мы помещаем в терминал следующие команды:

cd streamlit_app
streamlit run app.py

Когда вы запускаете эти команды, приложение появляется в вашем браузере, и вы можете продолжить его создание в режиме реального времени, потому что изменения в вашем файле Python автоматически появятся на странице вашего приложения (просто используйте повторный запуск в настройках приложения, чтобы увидеть эти изменения) .

Описание приложения

Я создам очень искусственное приложение без какой-либо конкретной цели, чтобы показать вам различные функции Streamlit. По сути, создаст форму, чтобы попросить пользователя ввести некоторые данные.

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

Теперь это полностью пустое приложение; однако в этой статье мы наполним его элементами.

Добавление заголовка и описания

Давайте добавим заголовок и описание в нашу форму. Для этого напишем следующий код:

Теперь наше приложение выглядит так. С помощью метода st.write () вы можете писать текст в любом месте приложения (также он может использоваться для различных графиков (plotly, altair и т. Д.) И другого контента).

Добавление входов

Текст

Давайте добавим несколько красивых элементов в наше приложение. Начнем с ввода текста. Однострочный ввод текста можно добавить с помощью метода st.text_input (). Вы также можете использовать метку для этого поля ввода, а также максимальное количество символов. Например, вы можете использовать его, если хотите, чтобы человек ввел свой идентификатор, состоящий максимум из 5 символов. Кроме того, мы можем добавить заполнитель (значение, которое будет отображаться по умолчанию).

Еще одна деталь: нам нужно сохранить входные данные в переменных, чтобы использовать их позже!

Кроме того, мы можем создать многострочный текстовый ввод, используя метод st.text_area (). Вы также можете добавить аргумент справка. Он предоставит пользователю подробные сведения о вводе своего ввода со значком вопроса слева.

Числа

Чтобы добавить числовые данные в ваше приложение, мы можем использовать метод st.number_input (). Мы можем добавить минимальное и максимальное число на выбор, а также шаг для виджета числа.

Даты

Иногда вам нужно пригласить человека на свидание. Может быть довольно сложно сделать формат даты универсальным после сбора дат в произвольном формате. Поэтому для этого лучше использовать конкретный виджет. Вы также можете установить минимальную и максимальную даты.

Флажки и переключатели

Давайте добавим другие популярные типы ввода: флажки и переключатели.

Флажок можно добавить с помощью метода st.checkbox (). Результатом этого ввода является либо «Истина» (если кто-то установил флажок), либо «Ложь».

Радиокнопки можно добавить с помощью метода st.radio (). Вам необходимо предоставить параметры для этого типа ввода.

Ползунки

Следующий добавляемый элемент - слайдер. Это очень полезный метод для ограниченного диапазона ввода, позволяющий визуально понять выбор конкретного значения. Ползунок можно создать с помощью метода st.slider (). Интересно, что ползунок можно использовать не только для целых чисел или чисел с плавающей запятой, но и для даты и времени!

Поля выбора

Иногда нам нужно предоставить пользователю множество вариантов на выбор (поэтому переключатели не подходят). В этих случаях поле выбора - отличный выбор. Мы можем создать поле выбора с возможностью выбора только одного варианта (с помощью метода st.selectbox ()) или нескольких из них (с помощью метода st.multiselect ()). .

Файлы

Файлы - это относительно продвинутый тип ввода; однако как можно попросить фотографию человека, не запрашивая файл изображения? Streamlit позволяет нам запрашивать любой файл у пользователя с помощью метода st.file_uploader (). Однако важно указать правильный формат файла (который поддерживает ваш код) для метода.

Отправка материалов

Чтобы отправить данные, вы можете использовать кнопку. Чтобы добавить кнопку, воспользуемся методом st.button (). Поскольку кнопка сама по себе не настолько умна, чтобы отправлять форму после нажатия, нам нужно отправить ее с помощью оператора if-else. Например, теперь мы напишем пользователю, что форма будет отправлена, если он нажал кнопку.

Добавление боковой панели

Как вы могли видеть из приложения, которое я показал изначально, есть возможность добавить боковую панель с некоторыми настройками или чем угодно. Для этого просто используйте st.sidebar. [Element_name], где element_name - это имя элемента, который вы хотите добавить, например кнопки, поля выбора и т. Д. Давайте добавим его!

Добавление столбцов

Вы также можете добавить столбцы в свое приложение, чтобы макет выглядел красивее. Мы можем добавлять столбцы с помощью метода st.beta_columns (). Вам нужно указать количество столбцов в объявлении метода.

Заключение

Это конец моего руководства по Streamlit. Надеюсь, вам понравилось, и теперь вы можете сами создавать красивые приложения! Полный код этой статьи приведен ниже:

Как видите, наше приложение заняло всего 38 строк кода. Разве это не волшебство? ☺️

Спасибо, что прочитали эту статью! На самом деле о Streamlit можно узнать гораздо больше, поэтому, если вы хотите больше руководств по этому поводу, напишите об этом в комментариях! Надеюсь, вы сможете мне аплодировать и задать много вопросов!