Spaces:
Sleeping
Sleeping
title: st.echo | |
slug: /develop/api-reference/text/st.echo | |
description: st.echo displays some code on the app, then execute it. Useful for tutorials. | |
<Autofunction function="streamlit.echo" /> | |
### Display code | |
Sometimes you want your Streamlit app to contain _both_ your usual | |
Streamlit graphic elements _and_ the code that generated those elements. | |
That's where `st.echo()` comes in. | |
Ok so let's say you have the following file, and you want to make its | |
app a little bit more self-explanatory by making that middle section | |
visible in the Streamlit app: | |
```python | |
import streamlit as st | |
def get_user_name(): | |
return 'John' | |
# ------------------------------------------------ | |
# Want people to see this part of the code... | |
def get_punctuation(): | |
return '!!!' | |
greeting = "Hi there, " | |
user_name = get_user_name() | |
punctuation = get_punctuation() | |
st.write(greeting, user_name, punctuation) | |
# ...up to here | |
# ------------------------------------------------ | |
foo = 'bar' | |
st.write('Done!') | |
``` | |
The file above creates a Streamlit app containing the words "Hi there, | |
`John`", and then "Done!". | |
Now let's use `st.echo()` to make that middle section of the code visible | |
in the app: | |
```python | |
import streamlit as st | |
def get_user_name(): | |
return 'John' | |
with st.echo(): | |
# Everything inside this block will be both printed to the screen | |
# and executed. | |
def get_punctuation(): | |
return '!!!' | |
greeting = "Hi there, " | |
value = get_user_name() | |
punctuation = get_punctuation() | |
st.write(greeting, value, punctuation) | |
# And now we're back to _not_ printing to the screen | |
foo = 'bar' | |
st.write('Done!') | |
``` | |
It's _that_ simple! | |
<Note> | |
You can have multiple `st.echo()` blocks in the same file. | |
Use it as often as you wish! | |
</Note> | |