I have a basic app where I need to use the same logic twice for two different purposes. My approach is:
import streamlit as st
import random
def col_content(col, base_key):
return col.number_input("Some label", key=f"{base_key}_{random.randint(1,1000)}")
col1, col2 = st.columns(2)
col1_content = col_content(col1, "foo")
col2_content = col_content(col2, "bar")
st.write(col1_content)
st.write(col2_content)
The problem is that the values of col1_content and col2_content are always 0.0. In the app I can change the values in the two input fields but they are reseted immediately and ultimately it doesn’t work.
What am I missing here? I guess it has to do somehow with the context/session but I don’t know how…
On using the st.columns(), here’s a short code snippet:
col1, col2 = st.columns(2)
...(Define contents for col1_content and col2_content)...
with col1:
st.write(col1_content)
with col2:
st.write(col2_content)
For more examples and info, check out the Docs page: