状態の保持と画面の構成
授業の後に 15 分。要点を読み、5 問で確かめ、一つ書く。最後に自分の探究へつなぐ
15分 | ひとりで、端末で授業で確かめた答えと比べる
- 相手が何か操作するたび、プログラムは 1 行目から全部やり直される。だから
kaisu = 0からやり直され、何回押しても 1 のままだった - 全部やり直すのは都合のよい性質であって、欠陥ではない。スライダを動かすと結果がすぐ変わるのは、この仕組みのおかげ。ただし前の値が残らないので、数える・順に足す・履歴を残すが書けない
- 消えない置き場所が
st.session_state。if "kaisu" not in st.session_state:で 1 回目だけ 0 を入れる。この「まだ無ければ」が核で、毎回入れ直したら結局 1 のまま - 入れるのは前の値が要るものだけ。何でも入れると、直すときに追えなくなる。入れるものが無いアプリなら「なし」でよい
- 設定を左に寄せるのは、
st.をst.sidebar.に変えるだけ。真ん中に結果だけが残って読みやすくなる - 長くなった画面は
st.tabsで分ける。名前を並べて、withの中に入れる。まとめて名前を付けると、あとから差し替えやすくなる
自分のアプリについて、覚えておきたいもの(無ければ「なし」と、その理由)と、左に寄せる設定を書く。覚えておきたいものには、なぜ前の値が要るのかまで書く。
答えの例を見る
例: 覚えておきたいもの: なし。行く時刻と天気を入れたら、その場で待ち時間を計算して返すだけなので、前の値は要らない / 左に寄せる設定: 時刻のスライダと、雨のチェック。結果は真ん中に残す
探究で作るものにも、「覚えさせるかどうか」の判断は出てくる。試した条件と結果を記録に残したいのか、その場で答えが出れば十分なのか。残す必要のないものまで残すと、あとで直せなくなる。これは探究の記録全体にも言えることで、集めたものを全部残さず、何を残すと後の自分が使えるのかを決めておく。画面を分ける判断も同じで、見る人にとって先に決めるものと結果を分けて置くと、伝わり方が変わる。
- 自分の探究で、前の結果を残しておく必要があるものはどれか。無いなら、なぜ無いのか
- 見る人にとって「先に決めるもの」と「結果」は、それぞれ何か
ここに書いたメモは 探究ノート に集まる。総合的な探究の時間のテーマ決めや、調べ方を考えるときに開く。まだテーマが決まっていなくても書ける。いま気になっていることを一つ思い浮かべて、そこに当てはめてみる
次回は「公開と試用」。ここまでの 5 回で作ってきたものは、全部、自分の端末の中にある。streamlit run を打てるのは自分だけで、隣の人は開けない。次回は他の人の端末から開ける URL を作るところまで行く。公開する前に必ず確かめる 3 点と、やめ方も決める。この回だけは実際に動かす環境が要るので、公開するものを 1 つ決めて持っていく。
このページに書いたものは、いま使っているこの端末の、このブラウザの中にだけ残ります。サーバには送られません。次に同じ端末で開けば、書いたものはそのまま出ます。
別の端末で開くと見えません。学校の端末と家の端末は別ものとして扱われます。ブラウザの履歴やサイトデータを消したときも、一緒に消えます。残しておきたいものは、下の「書いたものをコピー」で自分のノートや提出先に貼ってください。