Приветик👋! Вы когда-нибудь задумывались, можно ли создавать приложения, используя всего несколько строк скрипта/строк кода? Вот где Streamlit вступает в игру!
О Streamlit
Streamlit — это фреймворк с открытым исходным кодом для приложений в области машинного обучения и науки о данных. В его основе лежит идея о том, что лучший способ изучения и использования новых инструментов — это не обучающие статьи или видео, а изучение рабочих примеров.
Другими словами, Streamlit создан для того, чтобы вы могли создавать приложения для своих проектов Machine Learning без необходимости изучать новый фреймворк или язык. Всего за несколько минут вы сможете создать интерактивное приложение, которое позволит вам исследовать набор данных, визуализировать результаты и даже поделиться своим приложением с другими. Все, что вам нужно, — это базовые знания Python и веб-браузер.
Streamlit создан командой инженеров и энтузиастов науки о данных в Streamlit Inc., стартапе, расположенном в Сан-Франциско, Калифорния. Это легкое и быстрое приложение. Приложения, которые вы создадите с его помощью, можно легко развернуть на любой платформе, включая Heroku и AWS.
Начало работы
Откройте терминал в любом удобном для вас месте и выполните приведенные ниже команды.
$ pip install streamlit
$ streamlit hello
Вы сможете увидеть страницу, как показано ниже!
Вот и все! Вы закончили настройку фреймворка! Теперь мы можем начать создавать все, что захотим.
Давайте создадим приложение с некоторыми базовыми элементами
Создайте файл .py — здесь мы будем писать наш код для приложения.
Сначала импортируем модуль streamlit
import streamlit as st
Для этого урока мы создадим базовую страницу по мотивам «Рика и Морти». Ниже приведены коды, которые вы сможете легко понять. Давайте напишем код!
# Display text in title formatting
st.title("OOH WEE!")
# Display text in header and subheader formatting
st.header("Rick and Morty")
st.subheader("American adult animated science fiction sitcom")
# Display an image or list of images
st.image("https://upload.wikimedia.org/wikipedia/commons/9/9e/Rick_and_Morty_title_card.png", caption = "Justin Roiland and Dan Harmon, Public domain, via Wikimedia Commons")
# Write arguments to the app
st.write('**Rick and Morty** is one of the best animated series on television. The show is about the adventures of Rick, a mad scientist, and his grandson, Morty. The series is hilarious and has a lot of heart.')
# Display a code block
code = '''def rick():
print("Boom! Big reveal! I turned myself into a code block")'''
st.code(code, language='python')
# Display a button widget
if st.button("Just don't click this button"):
st.image('https://c.tenor.com/5IFS2BehSGUAAAAC/morty-you-dirty-little-doggy.gif')
# Display a slider widget
dimension = st.slider('Select your dimension', 0, 200, 137)
st.write("I'm from C-", dimension, ' dimension')
# Display a select widget
fav = st.selectbox(
'Who is your favourite character?',
('Rick Sanchez', 'Morty Smith', 'Birdperson', 'Summer Smith', 'Mr. Poopybutthole'))
# Display an informational message
st.info('Nobody exists on purpose. Nobody belongs anywhere. We are all going to die. Come lets built apps with Streamlit')
Ниже приведен полный код нашего базового приложения.
import streamlit as st
st.title("OOH WEE!")
st.header("Rick and Morty")
st.subheader("American adult animated science fiction sitcom")
st.image("https://upload.wikimedia.org/wikipedia/commons/9/9e/Rick_and_Morty_title_card.png", caption = "Justin Roiland and Dan Harmon, Public domain, via Wikimedia Commons")
st.write('**Rick and Morty** is one of the best animated series on television. The show is about the adventures of Rick, a mad scientist, and his grandson, Morty. The series is hilarious and has a lot of heart.')
code = '''def rick():
print("Boom! Big reveal! I turned myself into a code block")'''
st.code(code, language='python')
if st.button("Just don't click this button"):
st.image('https://c.tenor.com/5IFS2BehSGUAAAAC/morty-you-dirty-little-doggy.gif')
dimension = st.slider('Select your dimension', 0, 200, 137)
st.write("I'm from C-", dimension, ' dimension')
fav = st.selectbox(
'Who is your favourite character?',
('Rick Sanchez', 'Morty Smith', 'Birdperson', 'Summer Smith', 'Mr. Poopybutthole'))
st.write('You favourite character is ', fav)
st.info('Nobody exists on purpose. Nobody belongs anywhere. We are all going to die. Come lets built apps with Streamlit')
После того как вы создали свой скрипт, скажем rickandmorty.py, проще всего запустить его с помощью streamlit run:
$ streamlit run rickandmorty.py
Вы сможете увидеть вкладку в браузере. Вы можете запустить его в самом начале и создать свое приложение, визуализируя каждый элемент. Это поможет вам быстро понять суть.
Живая демонстрация нашего приложения — OOH WEE!
Попробуйте поэкспериментировать и создать то, что вы хотите.
Нужно вдохновение? Посмотрите, что создают создатели со всего мира — Streamlit Gallery.
Развертывание
- Добавьте свое приложение на GitHub
- Зарегистрируйтесь на Streamlit Cloud [рекомендуется использовать GitHub].
- Войдите на share.streamlit.io
- После входа в GitHub вы попадете в рабочее пространство Streamlit Cloud!
- Чтобы развернуть приложение, нажмите «New app», затем заполните репо, ветку и путь к файлу, или нажмите «Paste GitHub URL» и нажмите «Deploy».
- Теперь вы можете наблюдать за развертыванием и запуском вашего приложения.
Вот и все! Теперь ваше приложение в реальном времени, как и эта демонстрация, и вы можете поделиться им с другими.
Ресурсы 📚
- Я предлагаю вам попробовать #30DaysOfStreamlit, чтобы бросить вызов себе в изучении этого замечательного фреймворка — Начните прямо сейчас.
- Ознакомьтесь с их замечательной документацией
- YouTube Видеоролики профессора по данным
- Шорты от Streamlit
Заключение
У Streamlit есть еще много возможностей. Например, вы можете использовать его для создания приложений для исследования данных, приложений для приборных панелей и даже игр.
Недавно Streamlit запустил многостраничные приложения 📄 и аналитические панели 📊. Он развивается так быстро и завоевывает большую популярность среди разработчиков с открытым исходным кодом. Так чего же вы ждете? Начните создавать со Streamlit!
Happy Streamlit-ing 🎈.
На этом мы заканчиваем. Спасибо за чтение и не забывайте делиться своими отзывами. Вы можете найти меня в Twitter — Аадарш Каннан. Оставайтесь с нами, чтобы узнать больше!
Оставайтесь в безопасности 😷 распространяйте любовь ❤️ и продолжайте исследовать 🚀