見出し画像

Streamlit Multiple Forms

Streamlitのform機能についての話.1つのセッションで複数使用するとフォーム提出時に他のフォームが初期化されてしまう.
下のように,session_stateを使えばいけそう?
バージョンは streamlit 1.18.1.

import streamlit as st

st.title('Streamlit Multiple Form')
st.markdown('### Example')

with st.form('Form 1'):
    out = st.text_input(label='Input text')
    submitted=st.form_submit_button('click to submit Form 1')

    if 'form1' in st.session_state:
        submitted=True
    if submitted:
        st.markdown('#### ' + out)
        st.session_state['form1']=1

with st.form('Form 2'):
    out2 = st.text_input(label='Input text2')
    submitted2=st.form_submit_button('click to submit Form 2')

    if 'form2' in st.session_state:
        submitted2=True
    if submitted2:
        st.markdown('#### ' + out2)
        st.session_state['form2']=1

with st.form('Form 3'):
    out3 = st.text_input(label='Input text3')
    submitted3=st.form_submit_button('click to submit Form 3')

    if 'form3' in st.session_state:
        submitted3=True
    if submitted3:
        st.markdown('#### ' + out3)
        st.session_state['form3']=1

いいなと思ったら応援しよう!