LogoMark.png

Streamlit の変更点


#author("2023-01-12T23:48:16+09:00;2023-01-12T23:44:39+09:00","default:inoue.ko","inoue.ko")
#author("2023-01-12T23:50:12+09:00;2023-01-12T23:44:39+09:00","default:inoue.ko","inoue.ko")
*Streamlit
https://docs.streamlit.io/
~

Streamlit は、Webアプリ開発でも特にデータサイエンス領域で開発する際に利用されるフレームワークです。Pythonのフレームワークには、Django、Flask、Bottle などもありますが、Streamlit は、コードが直観的で分かりやすく開発が簡単、またデプロイ(ファイルをサーバーに配置してシステムとして稼働できるようにする)のためのサービスが整っているなど、効率のよい体験が可能です。
~
~

**概要
***基本情報
-公式サイト
--Documentation:https://docs.streamlit.io/
--Streamlit Cloud:https://streamlit.io/cloud
-API Reference:https://docs.streamlit.io/library/api-reference
--Text elements:https://docs.streamlit.io/library/api-reference/text
--Data display elements:https://docs.streamlit.io/library/api-reference/data
--Input widgets:https://docs.streamlit.io/library/api-reference/widgets
--Media elements:https://docs.streamlit.io/library/api-reference/media
--Chart elements:Layouts and Containers
~

***要件
//-[[GoogleColaboratory]]で開発する場合
//--ノートのはじめで、Streamlit をインストールすれば使えます。
// !pip install streamlit

-ローカルPCで開発
--Python のコードが書けるエディタ([[VisualStudioCode]]推奨)
--Python がインストール済み
--PIP がインストール済み
--Streamlit のインストール
 $ pip install streamlit


-デプロイ(Web公開)のために
--GitHub のアカウント(Pythonのコードとデータ等を置くリポジトリ)
--Streamlit Cloud のアカウント(Githubのアカウントと連携可能)
~
~

**Webアプリの開発
Streamlit を使った開発は、Python コードの記載順にページに要素が埋め込まれる・・というシンプルでわかりやすい作業になります。

テキスト、画像、入力フォームなどの一般的なページ要素だけでなく、 [[Pandas]] のデータフレームや、可視化ライブラリを用いたグラフなども、表示したい順に上から書く・・という作業になります。見出し、箇条書きなどの記事の記載については、Wikiでお馴染みの__[[Markdown]]__記法も使えます。
~

***開発ディレクトリの準備
-任意の場所に任意の名称のフォルダを作成します
-sample.py などの名前で空のファイルを作ります(ここにコードを書く)
-画像やCSVファイルなどを使う場合は、その置き場として data などのディレクトリを別途作っておくとよいでしょう。
~

***サンプルコード
sample.py に以下のコードを書いてみて下さい。コードの冒頭で、streamlit をインポートするだけで、フレームワークが利用可能になります。

 import streamlit as st
 
 st.title("Sample Application")
 st.write("Streamlit Sample")
 st.markdown("# 大見出し")
 st.markdown("## 中見出し")
~

***ローカルで実行
-ターミナルを開いて、開発ディレクトリに移動します。
> え? という方は、__[[Terminal]]__ をご覧ください。
-以下のコマンドをターミナルから入力します
 $ streamlit run sample.py

#image(StreamlitSample.jpg,right,20%)
-以下のような表示が出て、ローカルホスト(あなたのPC)上のサーバーにアプリが公開されます。同時に自動的にブラウザが立ち上がるようです。
 You can now view your Streamlit app in your browser.
   Local URL: http://localhost:8501
   Network URL: http://XXX.XXX.XXX.XXX:8501
~
~

**公開
Webアプリとして公開するは、一般にサーバーが必要となりますが Streamlit にはStreamlit Cloud というサービスがあって、とりあえず無料で公開を試すことができます。ここでは、GitHub にリポジトリを作ってファイルを置くとともに、Streamlit Cloud から公開する手順を紹介します。
~
***Webアプリの構成ファイルを GitHub に置く
-__[[GitHub]]__に新しいリポジトリを作って、そこに sample.py 他の関連ファイルをまとめてアップします。
-以下、リポジトリ StreamlitSample に上記の sample.py を置いた例です。
https://github.com/koichi-inoue/StreamlitSample
~

***Streamlit Cloud を利用してアプリを公開
-以下から、Streamlit Cloudにサインインします。
--https://streamlit.io/cloud
--GitHub 連携がよいかと・・・

#image(StreamlitCloud01.jpg,right,30%)
-登録が完了すると、右のような画面になります。
-管理画面の右上にあるNew appを選択します。
#clear
#image(StreamlitCloud02.jpg,right,30%)
-リポジトリ名、ブランチ名、アプリのファイル名を入力して [ Deploy! ] をクリック。 
#clear
-しばらくすると、アプリが公開されます。
--参考:https://koichi-inoue-streamlitsample-sample-a31ty5.streamlit.app/
~

***関連リンク
Web上に様々な事例が紹介されています。
__[[Google: Streamlit サンプル]]__
~
~
~