Taipyは、フロントエンドおよびバックエンドソリューションを迅速に構築するためのライブラリで、ウェブ開発の経験が少ない方にも使いやすく設計されているようです。データサイエンスやAIアプリケーションの開発を支援にも利用されることを念頭に置いているようです。pipからインストールすだけで利用可能で、サポート対象のPythonバージョン3.8以降となります。
前提
OS:Ubuntu 22.04.1 LTS
Python: 3.10.12
1. インストール
pipからTaipyをインストールします。
pip3 install taipy
2. 簡易アプリ起動
それでは早速動作させてみます。ユーザ個別にStateを持つダイナミックなサンプルグラフです。チュートリアルにあるサンプルコードを少しだけ変更して動作させてみます。
from taipy.gui import Gui
import taipy.gui.builder as tgb
from math import cos, exp
value = 10
def compute_data(decay:int)->list:
return [cos(i/6) * exp(-i*decay/600) for i in range(100)]
def on_slider(state):
state.data = compute_data(state.value)
with tgb.Page() as page:
tgb.text(value="# Taipy Getting Started", mode="md")
tgb.text(value="## Created by nw-engineer", mode="md")
tgb.text(value="Value: {value}")
tgb.slider(value="{value}", on_change=on_slider)
tgb.chart(data="{data}")
data = compute_data(value)
if __name__ == "__main__":
Gui(page=page).run(host='x.x.x.x', Port='80', title="Dynamic chart") #host,Portを追加
デフォルトでLISTENするIP/Portは127.0.0.1/5000番となるためこの部分のみ追加しています。
では起動しましょう。以下のように表示されます。
python3 dynamic_chart.py
[2024-08-06 09:37:23][Taipy][INFO] * Server starting on http://xx.xx.xx.xx:80
ブラウザからアクセスすると、チュートリアルにあるような画面が表示されスライダーを動かすとグラフが遷移します。
別々のブラウザでスライダーを動かしても、互いに干渉しいないのがわかります。各ユーザー(ブラウザ)に対して個別のStateオブジェクトが提供されるためですね。
3. その他
Taipyはチュートリアルが非常に豊富で、誰でも手軽に利用できる環境が整っていると感じました。PythonだけでWebアプリケーションが作成でき、素早くプロトタイプを作成して検証できるのはよいですね。
以下、チュートリアルページです。
その他、ビジュアル・シナリオ管理・大規模データなどサンプルコードも豊富なので学習コストも低いと感じました。