今回はWEBUI付きのアプリケーションを
サクサク作ることの出来るフレームワークである
Streamlitについてご紹介します。
解説動画はこちら
さてStreamlitはWEBUI付きのアプリケーションを
サクサク開発することができる
Python言語のフレームワークになっています。
Python言語でWEBUIを作るフレームワークは
次のようなものがありますが
![streamlitについて.003](https://livedoor.blogimg.jp/otupython/imgs/0/0/00552c69-s.jpg)
Flask
FAST API
Djangoに比べて
Streamlitはめちゃくちゃお手軽です。
主な特徴としてUI側をPythonのコードで
作成することができるという点があります。
これだけでも開発コストが
ガツンと下がりますね!!!!!
導入方法も至って簡単です。
pipなどでインストールするだけです。
インストールしたら
streamlit用のpythonファイルを作ります。
ここではsample1.pyというファイルを作ります。
どんな感じになるかコードを見てみましょう。
sample1.py
これが出来たらファイルの有るディレクトリで
コマンドを実行します。
そうするとWEBブラウザーに画面が表示されます。
![スクリーンショット 2021-12-18 17.25.38](https://livedoor.blogimg.jp/otupython/imgs/3/e/3e13a8c5-s.png)
ここら辺のテキストはstreamlitの機能で
表示させている物です。
コードに書いたものを上から順番に
UIに表示させているようです。
次にもう少し複雑なアプリケーションを
見てみましょう。
株価を取得して
UIにローソク足を表示させるというものです。
少し他のライブラリが必要なので
必要に応じてインストールしましょう。
pandas_datareader
plotly
コードはこんな感じです。
sample2.py
出来たら実行です。
画面の左側にはコード選択の
セレクトボックスが置かれます。
![スクリーンショット 2021-12-18 17.14.47](https://livedoor.blogimg.jp/otupython/imgs/3/f/3fae2e07-s.png)
これで選択するとそのコードに該当する
銘柄の株価が取得され、右側に表示されます。
![スクリーンショット 2021-12-18 17.14.34](https://livedoor.blogimg.jp/otupython/imgs/7/e/7e6f7ac5-s.png)
plotlyで表示しているので
非常にインタラクティブに操作できます。
今回は1ヶ月分だけを取得して表示させるような内容なので
これを改変すればもう少し凝ったアプリが作れます。
試したい方はここら辺のコードを参考にしてみてください。
今回はStreamlitをご紹介しました。
WEBのUIをPythonのコードだけで
自動的に生成してくれるので
簡単なアプリであれば開発がすぐにできます。
デザインなどを凝る場合は
他のフレームワークを使うことになると思いますが
スピード重視であればこちらのフレームワークが
かなり使えると思います。
いろいろ試してみてください。
それでは。
サクサク作ることの出来るフレームワークである
Streamlitについてご紹介します。
解説動画はこちら
さてStreamlitはWEBUI付きのアプリケーションを
サクサク開発することができる
Python言語のフレームワークになっています。
Python言語でWEBUIを作るフレームワークは
次のようなものがありますが
![streamlitについて.003](https://livedoor.blogimg.jp/otupython/imgs/0/0/00552c69-s.jpg)
Flask
FAST API
Djangoに比べて
Streamlitはめちゃくちゃお手軽です。
主な特徴としてUI側をPythonのコードで
作成することができるという点があります。
これだけでも開発コストが
ガツンと下がりますね!!!!!
導入方法も至って簡単です。
pipなどでインストールするだけです。
pip install streamlit
インストールしたら
streamlit用のpythonファイルを作ります。
ここではsample1.pyというファイルを作ります。
どんな感じになるかコードを見てみましょう。
sample1.py
import streamlit as st def main(): # タイトル表示 st.title('タイトル表示') # ヘッダー表示 st.header('ヘッダー表示') # テキスト表示 st.text('テキスト表示') # サブレベルヘッダー表示 st.subheader('ブレベルヘッダー表示') # マークダウンテキスト表示 st.markdown('**マークダウンテキスト表示 **') # LaTeX テキスト表示 st.latex(r'\bar{X} = \frac{1}{N} \sum_{n=10}^{N} x_i') # コードスニペット表示 st.code('print(\'code snippets ! \')') # エラーメッセージ表示 st.error('エラーメッセージ表示') # 警告メッセージ表示 st.warning('警告メッセージ表示') # インフォメッセージ表示 st.info('インフォメッセージ表示') # 成功メッセージ表示 st.success('成功メッセージ表示') # 例外表示 st.exception(Exception('例外表示')) # 辞書の出力 data = {'アプリ名': 'streamlitサンプル', 'ユーザー': ['otupy','okkun',],} st.json(data) if __name__ == '__main__': main()
これが出来たらファイルの有るディレクトリで
コマンドを実行します。
streamlit run --server.address localhost sample1.py
そうするとWEBブラウザーに画面が表示されます。
![スクリーンショット 2021-12-18 17.25.38](https://livedoor.blogimg.jp/otupython/imgs/3/e/3e13a8c5-s.png)
ここら辺のテキストはstreamlitの機能で
表示させている物です。
コードに書いたものを上から順番に
UIに表示させているようです。
次にもう少し複雑なアプリケーションを
見てみましょう。
株価を取得して
UIにローソク足を表示させるというものです。
少し他のライブラリが必要なので
必要に応じてインストールしましょう。
pandas_datareader
plotly
コードはこんな感じです。
sample2.py
import streamlit as st import pandas as pd import numpy as np import pandas_datareader as web from datetime import datetime, date, timedelta import plotly.graph_objects as go from plotly.subplots import make_subplots data_dict = {9432:'NTT日本',9433:'KDDI',9434:'ソフトバンク', 9613:'NTTデータ',9984:'ソフトバンクグループ'} data_list = [k for k in data_dict.keys()] ticker = st.sidebar.selectbox('銘柄コードを選択してください',data_list) st.text('コード : {0} , 銘柄{1}'.format(ticker,data_dict[ticker])) stock_code = '{0}.JP'.format(ticker) data_source = 'stooq' today = datetime.today() end_date = datetime.strftime(today, '%Y-%m-%d') y30day = today - timedelta(days=30) start_date =datetime.strftime(y30day, '%Y-%m-%d') df = web.DataReader(stock_code, data_source=data_source, start=start_date, end=end_date) df = df.sort_index() x = np.arange(df.shape[0]) interval = 1 vals = np.arange(df.shape[0],step=interval) labels = list(df[::interval].index.astype(str)) fig = go.Figure( data=[go.Candlestick( x=x, open=df['Open'], high=df['High'], low=df['Low'], close=df['Close']), ], layout = go.Layout( xaxis = dict( tickvals = vals, ticktext = labels, tickangle=-45 ), ) ) config={'modeBarButtonsToAdd': ['drawline']} st.plotly_chart(fig, use_container_width=True, config=config)
出来たら実行です。
streamlit run --server.address localhost sample2.py
画面の左側にはコード選択の
セレクトボックスが置かれます。
![スクリーンショット 2021-12-18 17.14.47](https://livedoor.blogimg.jp/otupython/imgs/3/f/3fae2e07-s.png)
これで選択するとそのコードに該当する
銘柄の株価が取得され、右側に表示されます。
![スクリーンショット 2021-12-18 17.14.34](https://livedoor.blogimg.jp/otupython/imgs/7/e/7e6f7ac5-s.png)
plotlyで表示しているので
非常にインタラクティブに操作できます。
今回は1ヶ月分だけを取得して表示させるような内容なので
これを改変すればもう少し凝ったアプリが作れます。
試したい方はここら辺のコードを参考にしてみてください。
今回はStreamlitをご紹介しました。
WEBのUIをPythonのコードだけで
自動的に生成してくれるので
簡単なアプリであれば開発がすぐにできます。
デザインなどを凝る場合は
他のフレームワークを使うことになると思いますが
スピード重視であればこちらのフレームワークが
かなり使えると思います。
いろいろ試してみてください。
それでは。
コメントする