できるだけPythonだけで・・・と進めてきましたが、画期的なフレームワークの存在最近まで知らず・・・
「できるだけPythonだけでWEBアプリを作る第3弾」としてPython ライブラリのStreamlitとStreamlit Cloudを使用した方法をまとめていきます。
この方法は他の方も多くまとめているので、備忘録として簡単なフローだけを示しています。
第1弾, 第2弾記事は以下の通り。
dango-study.hatenablog.jp
dango-study.hatenablog.jp
目次
Streamlitでできること
- PythonだけでWebアプリが作れる
- フロントエンド(UI)の開発スキルが無くても簡単にUIを作ることができる
- 作成したアプリをStreamlit Cloudに(無料)デプロイできる
デプロイ方法は、Streamlit Cloud意外に色々ありますが、Streamlit Cloudではセキュリティーが担保できないので、機密データを処理したい時などは、ローカルサーバーやセキュリティ保護されたサーバーでの運用が望ましいです。
Streamlitを用いたWEBアプリ作成
ライブラリのインストール
以下を実行して必要なライブラリをインストールします。
$ pip install streamlit
アプリ構成
基本的な構成は、「処理等を記載した.pyファイル」「必要ライブラリとバージョン情報を記載したrequirements.txt」の2つの構成になります。
@@@.py requirements.txt
コード作成
任意の名前の.pyファイルには、最低限streamlitのモジュールインポート記載をしておけば、実行確認ができます。
$ import streamlit as st
ローカルで実行/確認
コンソールで以下コードを実行して、
エラーが出なければ「http://localhost:8555」にアクセスして実行結果を確認できます。
$ streamlit run @@@.py
→.pyファイルの記載がstreamlitのモジュールインポート記載のみであれば、白紙のページが表示されるだけです。
コードの書き方などは、ありがたいことに・・先人の皆様のページで詳しく説明されているので割愛します。
- 参考コード(私)
https://github.com/Mya-mori/streamlit_csv/blob/main/test.py
- 参考ページ①
Streamlit入門+応用 ~ データ分析Webアプリを爆速で開発する - Qiita
- 参考ページ②
PythonでDX「Streamlit」簡単ダッシュボード(前編) | コードファミリー
- 参考ページ③
アプリをStreamlit Cloudにデプロイ
Streamlit Cloudにサインイン
https://share.streamlit.io/signup
Googleアカウント、Githubアカウント、メールアドレスのいずれかを利用してアカウントを作成します。
GithubリポジトリにWebアプリのソースコードをアップロード
作成したソースコードをGithubにアップロードします
アップロードするファイルは、最低限以下構成のファイル
@@@.py requirements.txt
requirements.txtは以下コードを実行することで、出力することができる。
必要最低限の情報でないとエラーが出る場合がある為、余計なライブラリ情報は削除する。(ライブラリが多すぎることが原因のエラーが出ました)
$pip freeze > requirements.txt
アプリのデプロイ
Streamlit CloudにStreamlitで作成したWebアプリをデプロイします。
Streamlitにログインして、"New app"と記載されたボタンを押す。
以下の通り設定をして、デプロイボタンを押すことで、デプロイされる。
何か問題があれば、エラーが吐き出されます。
動作確認
デプロイされるアプリURLにアクセスすると、デプロイしたアプリの動作確認ができます。
簡単にデプロイして利用できるのがStereamlit Cloudを用いた利点ですね。
参考までに私が作成したアプリは以下↓
https://webapplicationsample1-rwb1ydqchif.streamlit.app/
【システム同定シミュレーターアプリ】
csvデータを入力して、線形システムのシステム同定シミュレーションができます。
Githubアイコンを押すとコードも参照頂けます。