【実践チャレンジその5】
第5章の総まとめです。 ここがStreamlitの最大の難所です。これができれば、あなたはもう初心者卒業です!
課題:消えない買い物リスト
Section titled “課題:消えない買い物リスト”下のアプリは「追加」ボタンを押しても、一瞬表示されるだけでリストに追加されません(すぐに空に戻ってしまいます)。
st.session_state を使って、アイテムが正しく保持されるように修正してください。
ヒント:
shopping_list = []だと毎回リセットされます。if "key" not in st.session_state:で初期化しましょう。- リストへの追加・表示もすべて
st.session_state[...]経由で行います。
クリックして解答コードを見る
import streamlit as st
st.title("買い物リスト 🍎")
# 1. Session Stateの初期化if "shopping_list" not in st.session_state: st.session_state["shopping_list"] = []
# 入力フォームitem = st.text_input("買うものを入力")
if st.button("追加"): if item: # 2. Session Stateへの追加 st.session_state["shopping_list"].append(item) st.success(f"「{item}」を追加しました")
# リストの表示st.write("### 現在のリスト")# 3. Session Stateからの読み出しfor x in st.session_state["shopping_list"]: st.write(f"- {x}")
if len(st.session_state["shopping_list"]) == 0: st.info("まだリストは空です")