- 追加された行はこの色です。
- 削除された行はこの色です。
#author("2023-01-12T19:06:56+09:00;2023-01-12T19:02:37+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 のコード順に、ページに要素が埋め込まれていきます。Wikiでお馴染みの__[[Markdown]]__記法も使えます。
**Webアプリの開発
Streamlit を使った開発は、Python コードの記載順にページに要素が埋め込まれる・・というシンプルでわかりやすい作業になります。
テキスト、画像、入力フォームなどの一般的なページ要素だけでなく、 [[Pandas]] のデータフレームや、可視化ライブラリを用いたグラフなども、表示したい順に上から書く・・という作業になります。見出し、箇条書きなどの記事の記載については、Wikiでお馴染みの__[[Markdown]]__記法も使えます。
~
***開発ディレクトリの準備
-任意の場所に任意の名称のフォルダを作成します
-sample.py などの名前で空のファイルを作ります(ここにコードを書く)
-data ディレクトリを作ります(画像やCSVファイルの置き場として)
-画像やCSVファイルなどを使う場合は、その置き場として data などのディレクトリを別途作っておくとよいでしょう。
~
***サンプルコード
sample.py に以下のコードを書いてみて下さい。
sample.py に以下のコードを書いてみて下さい。コードの冒頭で、streamlit をインポートするだけで、フレームワークが利用可能になります。
import streamlit as st
st.title("Sample Application")
st.write("Streamlit Sample")
st.markdown("# 大見出し")
st.markdown("## 中見出し")
~
***ローカルで実行
-ターミナルを開いて、開発ディレクトリに移動します。
> え? という方は、__[[Terminal]]__ をご覧ください。
-以下のコマンドをターミナルから入力します
$ streamlit run sample.py
-以下のような表示が出て、ローカルホスト(あなたのPC)上でサーバーが動いて、ブラウザで動作確認ができます。
#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
~
~
**公開
GitHub にリポジトリを作ってファイルを置くとともに、Streamlit Cloud から公開する手順を紹介します。
Webアプリとして公開するは、一般にサーバーが必要となりますが Streamlit にはStreamlit Cloud というサービスがあって、とりあえず無料で公開を試すことができます。ここでは、GitHub にリポジトリを作ってファイルを置くとともに、Streamlit Cloud から公開する手順を紹介します。
~
***Webアプリの構成ファイルを GitHub に置く
-__[[GitHub]]__に新しいリポジトリを作って、そこに sample.py 他の関連ファイルをまとめてアップします。
-以下、リポジトリ StreamlitSample に上記の sample.py を置いた例です。
https://github.com/koichi-inoue/StreamlitSample
~
-__[[GitHub]]__に新しいリポジトリを作って、そこに 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 ]
-リポジトリ名、ブランチ名、アプリのファイル名を入力して [ Deploy! ] をクリック。
#clear
-しばらくすると、アプリが公開されます。
--参考:https://koichi-inoue-streamlitsample-sample-a31ty5.streamlit.app/
~
***関連リンク
Web上に様々な事例が紹介されています。
__[[Google: Streamlit サンプル]]__
~
~
~