Streamlitのキャッシュ管理が変わりました
/ 1 min read
Table of Contents
はじめに
Streamlit のキャッシュ管理は、今までst.cache
、st.experimental_memo
、st.experimental_singleton
で対応していましたが、
バージョン 1.18.1 から@st.cache_data
とst.cache_resoure
に変わりました。
DataFrame の読み込みや API 経由でのデータ取得、NumPy Array の計算といったものはst.cache_data
、
DB 接続や機械学習モデルのロードはst.cache_resoure
だそうです。
内容
簡単な使い方
DB に接続して、df を取得してみましょう。
import streamlit as stimport pandas as pd
@st.cache_resourcedef get_db_engin(): """DB接続""" SQLALCHEMY_DATABASE_URL = "sqlite:///hoge.db" engine = create_engine( SQLALCHEMY_DATABASE_URL, connect_args={"check_same_thread": False} ) return engine
@st.cache_datadef get_df(): engine = get_db_engin() df = pd.read_sql(sql="SELECT * FROM fugas", con=engine) return df