В тази статия ще представя 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() можете да пишете текст навсякъде в приложението (също така може да се използва за различни графики (плотни, алтаир и т.н.) и друго съдържание).

Добавяне на входове

Текст

Нека добавим някои красиви входове в нашето приложение. Ще започнем с въвеждане на текст. Едноредов текст може да се добави с помощта на методаst.text_input(). Можете също да използвате етикет за това поле за въвеждане, както и максималния брой знаци. Например, можете да го използвате, ако искате човек да попълни своя ID, състоящ се от максимум 5 знака. Освен това можем да добавим контейнер (стойност, която ще се показва по подразбиране).

Още една подробност: трябва да запазим въведените данни в променливите, за да ги използваме по-късно!

Също така можем да създадем многоредов текст, използвайки метода st.text_area(). Можете също да добавите аргументапомощ. Той ще предостави на потребителя подробни подробности относно писането на въведените им данни с иконата на въпрос отляво.

Числа

За да добавим въвеждане на числа в приложението ви, можем да използваме метода st.number_input(). Можем да добавим минимален и максимален брой за избор, както и стъпка за приспособлението за номера.

Дати

Понякога трябва да помолите човек за среща. Може да бъде доста трудно да направите формата на датата универсален, след като съберете датите във формат в свободна форма. Затова е по-добре да използвате конкретна джаджа за това. Можете също да зададете минимални и максимални дати.

Квадратчета за отметка и радиобутони

Нека добавим други популярни типове въвеждане: квадратчета за отметка и радио бутони.

Квадратчето за отметка може да се добави чрез метода st.checkbox(). Връщането от този вход е или True (ако човек е поставил отметка в квадратчето) или False.

Радио бутоните могат да се добавят с методаst.radio(). Трябва да предоставите опции за този тип въвеждане.

Плъзгачи

Следващият елемент, който добавяме, е плъзгач. Това е доста полезна техника за ограничен входен диапазон за визуално разбиране на избора на конкретна стойност. Плъзгачът може да бъде създаден с метода st.slider(). Интересното е, че плъзгачът може да се използва не само за цели числа или float, но и за дати и часове!

Кутии за избор

Понякога трябва да дадем на потребителя много опции за избор (така че радио бутоните не са подходящи). В тези случаи полето за избор е отличен избор. Можем да създадем поле за избор с възможност да избираме само една опция (с метода st.selectbox()) или множество от тях (с метода st.multiselect()) .

Файлове

Файловете са сравнително усъвършенстван тип въвеждане; как обаче можете да поискате снимка на човек, без да поискате файл с изображение? Streamlit ни позволява да поискаме всеки файл от потребителя с метода st.file_uploader(). Важно е обаче да зададете подходящ файлов формат (който вашият код поддържа) на метода.

Изпращане на входове

За да изпратите входове, можете да използвате бутона. За да добавим бутон, ще използваме метода st.button(). Тъй като бутонът не е толкова интелигентен сам по себе си, за да изпрати формуляра след натискане, трябва да го изпратим с помощта на командата if-else. Например, сега ще напишем на потребителя, че формулярът е изпратен, ако е натиснал бутона.

Добавяне на странична лента

Както можете да видите от приложението, което показах първоначално, има възможност да добавите странична лента с някои настройки или каквото искате. За да го направите, просто използвайте st.sidebar.[element_name], където element_name е името на елемента, който искате да добавите, като бутон, поле за избор и т.н. Нека го добавим!

Добавяне на колони

Можете също така да добавите колони към приложението си, за да направите оформлението да изглежда по-красиво. Можем да добавяме колони с помощта на метода st.beta_columns(). Трябва да посочите броя на колоните в декларацията на метода.

Заключение

Това е краят на моя урок за Streamlit. Надявам се, че ви е харесало и сега можете сами да създавате красиви приложения! Пълният код за тази статия е по-долу:

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

Благодаря ви, че прочетохте тази статия! Всъщност има много повече да научите за Streamlit, така че ако искате повече уроци за него, кажете го в коментарите! Надявам се, че можете да ме ръкопляскате и да задавате много въпроси!