迷子になった本の少年
読んだ後に必要
5
分速読にはわずか2分しかかかりません
1
導入
Python Web アプリケーション フレームワークは数多くありますが、そのほとんどは小規模データ アプリケーション向けに設計されているか、大規模では証明されていないパラダイムを使用しています。アプリケーションの複雑さが増すにつれて、コードの編成、再利用性、および状態が損なわれることが多く、その結果、コードが乱雑になったり、React を直接使用してアプリケーションを開発したりすることになります。
ソラーラはこの問題を解決します。React のような API を使用すると、スケーラビリティを心配する必要がありません。React は、世界最大の Web アプリケーションを強化できる能力を証明しています。Solara は、React (Reacton) の純粋な Python 実装を使用して、ipywidget ベースのアプリケーションを作成します。これらのアプリケーションは、Jupyter Notebook 内で実行することも、FastAPI などのフレームワークを通じてスタンドアロン Web アプリケーションとして実行することもできます。このパラダイムにより、コンポーネントベースのコードと非常にシンプルな状態管理が可能になります。
ipywidget 上に構築することで、既存のウィジェット エコシステムを自動的に活用し、JupyterLab、Jupyter Notebook、Voilà、Google Colab、DataBricks、JetBrains Datalore などの多くのプラットフォームで実行できます。
2
インストール
pipコマンドを使ってインストールする
pip install solara
3
基本的な文法
3.1
リアクティブ変数を作成する
Solara.reactive() を使用して応答性の高い変数を作成します。これを UI コンポーネントにバインドして、データの応答性の高い更新を実装できます。
count = solara.reactive(0)
3.2
コンポーネントを定義する
コンポーネントは @solara.component デコレータを使用して定義できます
@solara.component
def MyComponent():
# 组件的实现
コンポーネントは応答変数を表示したり、他の Solara コンポーネントを含めたりできます。
3.3
参照コンポーネント
コンポーネント関数を直接呼び出してコンポーネントをレンダリングします。
MyComponent()
3.4
リアクティブ変数を更新する
リアクティブ変数が更新されると、その変数がバインドされているコンポーネントも自動的に更新されます。
count.value += 1
Solara は、応答性の高い変数を介してデータとコンポーネントを接続し、単純な Python 構文を使用して動的ページを構築します
4
サンプルコード
以下は公式の完全なコード例です
import solara
sentence = solara.reactive("Solara makes our team more productive.")
word_limit = solara.reactive(10)
@solara.component
def Page():
word_count = len(sentence.value.split())
solara.SliderInt("Word limit", value=word_limit, min=2, max=20)
solara.InputText(label="Your sentence", value=sentence, continuous_update=True)
if word_count >= int(word_limit.value):
solara.Error(f"With {word_count} words, you passed the word limit of {word_limit.value}.")
elif word_count >= int(0.8 * word_limit.value):
solara.Warning(f"With {word_count} words, you are close to the word limit of {word_limit.value}.")
else:
solara.Success("Great short writing!")
Page()
上記のコードを実行するには、コマンドは次のとおりです。
solara run sol.py
Web サービスが開始され、デフォルトのブラウザを使用して http://localhost:8765 が自動的に開きます。
このコードは、solara ライブラリを使用して単純なページを実装します。
Solara ライブラリをインポートし、レスポンシブ センテンス変数 Sent と単語制限変数 word_limit を作成します。次に、solara.component デコレーターを使用して Page コンポーネントを定義します。コンポーネント内で、文中の単語の数を数えます word_count。Solara.SliderInt を使用してスライダー コンポーネントを作成し、word_limit 変数にバインドします。Solara.InputText を使用してテキスト入力コンポーネントを作成し、それを文変数にバインドします。word_count と word_limit の関係に応じて、異なる印刷情報が表示され、制限を超えた場合はエラー プロンプトが表示され、制限に近い場合は警告プロンプトが表示され、それ以外の場合は成功メッセージが表示されます。最後に、Page コンポーネントがレンダリングのために呼び出されます。このようにして、スライダーをドラッグして制限をリアルタイムで変更し、文を入力して単語数プロンプトの変更を確認することができます。
5
参考文献
https://github.com/widgetti/solara
6
無料コミュニティ