Spaces:
Sleeping
Sleeping
File size: 3,558 Bytes
746d2f1 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 |
---
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.
<TileContainer>
<RefCard href="/develop/api-reference/execution-flow/st.dialog" size="full">
<Image pure alt="screenshot" src="/images/api/dialog.jpg" />
<h4>Modal dialogs</h4>
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")
```
</RefCard>
<RefCard href="/develop/api-reference/execution-flow/st.fragment">
<h4>Partial reruns</h4>
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)
```
</RefCard>
<RefCard href="/develop/api-reference/execution-flow/st.rerun">
<h4>Rerun script</h4>
Rerun the script immediately.
```python
st.rerun()
```
</RefCard>
<RefCard href="/develop/api-reference/execution-flow/st.stop">
<h4>Stop execution</h4>
Stops execution immediately.
```python
st.stop()
```
</RefCard>
</TileContainer>
## 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!
<TileContainer>
<RefCard href="/develop/api-reference/execution-flow/st.form" size="half">
<h4>Forms</h4>
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")
```
</RefCard>
<RefCard href="/develop/api-reference/execution-flow/st.form_submit_button" size="half">
<h4>Form submit button</h4>
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")
```
</RefCard>
</TileContainer>
<ComponentSlider>
<ComponentCard href="https://github.com/kmcgrady/streamlit-autorefresh">
<Image pure alt="screenshot" src="/images/api/components/autorefresh.jpg" />
<h4>Autorefresh</h4>
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")
```
</ComponentCard>
<ComponentCard href="https://github.com/lukasmasuch/streamlit-pydantic">
<Image pure alt="screenshot" src="/images/api/components/pydantic.jpg" />
<h4>Pydantic</h4>
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)
```
</ComponentCard>
<ComponentCard href="https://github.com/blackary/st_pages">
<Image pure alt="screenshot" src="/images/api/components/pages.jpg" />
<h4>Streamlit Pages</h4>
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:"), ])
```
</ComponentCard>
</ComponentSlider>
|