Execution flow

By default, Streamlit apps execute the script entirely, but we allow some functionality to handle control flow in your applications.

Partial reruns

Define a fragment to rerun independently from the rest of the script.

@st.experimental_fragment(run_every="10s") def fragment(): df = get_data() st.line_chart(df)

Rerun script

Rerun the script immediately.

st.rerun()

Stop execution

Stops execution immediately.

st.stop()

By default, Streamlit reruns your script everytime a user interacts with your app. However, sometimes it's a better user experience to wait until a group of related widgets is filled before actually rerunning the script. That's what st.form is for!

Forms

Create a form that batches elements together with a “Submit" button.

with st.form(key='my_form'): name = st.text_input("Name") email = st.text_input("Email") st.form_submit_button("Sign up")

Form submit button

Display a form submit button.

with st.form(key='my_form'): name = st.text_input("Name") email = st.text_input("Email") st.form_submit_button("Sign up")

Third-party components

These are featured components created by our lovely community. If you don't see what you're looking for, check out our Components Hub app and Streamlit Extras for more examples and inspiration!

screenshot

Autorefresh

Force a refresh without tying up a script. Created by @kmcgrady.

from streamlit_autorefresh import st_autorefresh st_autorefresh(interval=2000, limit=100, key="fizzbuzzcounter")
screenshot

Pydantic

Auto-generate Streamlit UI from Pydantic Models and Dataclasses. Created by @lukasmasuch.

import streamlit_pydantic as sp sp.pydantic_form(key="my_form", model=ExampleModel)
screenshot

Streamlit Pages

An experimental version of Streamlit Multi-Page Apps. Created by @blackary.

from st_pages import Page, show_pages, add_page_title show_pages([ Page("streamlit_app.py", "Home", "🏠"), Page("other_pages/page2.py", "Page 2", ":books:"), ])
forum

Still have questions?

Our forums are full of helpful information and Streamlit experts.