Streamlit widgets synce value with url ,download button which won't cause rerun and some useful functions
APACHE-2.0 License
A small handy extension for streamlit, keep your widget values in url, and share it with your friends.
Use widget from stramlit-ext
just as streamlit
and pass a unique key
to it!
import numpy as np
import pandas as pd
import streamlit as st
import streamlit_ext as ste
df = pd.DataFrame(np.random.rand(10, 5))
option = ste.selectbox(
"A form will show up if you select less than 10",
range(100),
key="selectbox",
)
st.write("You selected:", option)
age = ste.slider("How old are you?", 0, 130, 25, key="slider1")
st.write("I'm ", age, "years old")
ste.download_button("Click to download data!", df, "YOUR_DF.xlsx")
ste.download_button("Click to download text!", b"text content", "YOUR_STRING.txt")
pip install streamlit-ext
When widgets value changes, the url synced and if you open the url in new tab, every value keeped.
Just import widgets from streamlit_ext, and give a specific key
argument to it!
import streamlit as st
import streamlit_ext as ste
from datetime import time, datetime, date
option = ste.selectbox(
"How would you like to be contacted?",
range(100),
key="selectbox",
)
st.write("You selected:", option)
d = ste.date_input("When's your birthday", date(2019, 7, 6), key="date_input")
st.write("Your birthday is:", d)
t = ste.time_input("Set an alarm for", time(8, 45), key="time_input")
st.write("Alarm is set for", t)
import streamlit as st
import streamlit_ext as ste
st.title('streamlit-ext')
ste.set_page_width("60em")
ste.download_button("Download", "Hello World".encode(), "hello.txt")
import streamlit as st
import streamlit_ext as ste
st.title('streamlit-ext')
ste.set_page_width("60em")
st.write("a quick fox jump..."*100)