test code is:
import streamlit as st
submitted = st.form_submit_button("submit")
st.write("this line should not disappear after click download")
My real code will do some calculation and show the result (chart and tables) after click
But if I click the
download_button, the calculation result will disappear.
How to resolve this?
And a suggestion, data parameter could be a function name, which runs on click
Hi @johnlyu, welcome to the Streamlit community!
The answer to your questions is that everything causes the Streamlit page to re-load, that’s how the execution model works:
If you want to maintain a specific result between runs, you can accomplish that by using
st.experimental_singleton (or the legacy version
st.cache, but I wouldn’t recommend that for new code).
Hi @randyzwitch , I know I can save result using cache or state between rerun/sessions.
But my main question is why
download_button reload the page, it shouldn’t.
any time something must be updated on the screen, Streamlit reruns your entire Python script from top to bottom
Download button is not a kind of control flow or will update something on the screen but just an output. For example, a chart created by
st.altair_chart will provide a download button on the chart element and click it won’t reload the page.
Is there any way to disable the reload feature of
I found it has been discussed in github