Streamlit は Python ベースの WebUI ツールであり、低コードと言っても過言ではありません。
最近、自分自身のためにページを作成し、yaml 形式のルールファイルを生成しました。
途中で対話が必要な箇所に遭遇しました。たとえば、このボタンをクリックして入力ボックスを追加する操作です。
長い間検索しましたが、ついに海外の方の方法を見つけました。アイデアと方法の両方が非常に良かったので、ここに記録します。
import streamlit as st
import random
import string
if 'input_keys' not in st.session_state:
st.session_state.input_keys= []
if st.button("新しい行を追加"):
st.session_state.input_keys.append(random.choice(string.ascii_uppercase)+str(random.randint(0,999999)))
input_values = []
for input_key in st.session_state.input_keys:
input_value = st.text_input("何か入力してください", key=input_key)
input_values.append(input_value)