--- title: Execution flow slug: /develop/api-reference/execution-flow --- # Execution flow ## Change execution By default, Streamlit apps execute the script entirely, but we allow some functionality to handle control flow in your applications. screenshot

Modal dialogs

Insert a modal dialog that can rerun independently from the rest of the script. ```python @st.experimental_dialog() def email_form(): name = st.text_input("Name") email = st.text_input("Email") ```

Partial reruns

Define a fragment to rerun independently from the rest of the script. ```python @st.experimental_fragment(run_every="10s") def fragment(): df = get_data() st.line_chart(df) ```

Rerun script

Rerun the script immediately. ```python st.rerun() ```

Stop execution

Stops execution immediately. ```python st.stop() ```
## Group multiple widgets 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. ```python 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. ```python with st.form(key='my_form'): name = st.text_input("Name") email = st.text_input("Email") st.form_submit_button("Sign up") ```
screenshot

Autorefresh

Force a refresh without tying up a script. Created by [@kmcgrady](https://github.com/kmcgrady). ```python 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](https://github.com/lukasmasuch). ```python 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](https://github.com/blackary). ```python 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:"), ]) ```