コンテンツにスキップ

一部だけをリロードさせる

Streamlitでは、ボタンのクリックなどのUI操作でページの全体がリロードされるのがデフォルトです。 それを回避する仕組みとして st.fragment を使います。

fragment.py
import streamlit as st
from datetime import datetime
page_run_ts = datetime.now().strftime("%H:%M:%S")
@st.fragment()
def my_fragment_function():
if st.button("バルーンが飛ばない", key="btn_simple_frag"):
st.success("押されました!(このブロックだけ再実行)")
st.info(
f"""
ページ更新時刻も変わりません
**ブロック実行時間: {datetime.now().strftime('%H:%M:%S')}**
""")
st.subheader(f"ページ更新時刻: {datetime.now().strftime('%H:%M:%S')}")
st.balloons()
st.button("バルーンが飛ぶ")
my_fragment_function()

前回のコードをfragmentで書き直す

Section titled “前回のコードをfragmentで書き直す”