Houdini 20.0 Pythonスクリプト hou hou.webServer

hou.webServer.run HOM function

HoudiniのWebサーバーを起動します。

run(port=8008, debug=False, max_num_threads=4, in_background=None, reload_source_changes=None, max_in_memory_file_upload_size=None, max_request_size=None, settings=None, ports=[])

port

リッスンするポート番号。 このポートが既に使用中またはプロセスがリッスンを許可されていない場合、この関数はhou.OperationFailedを引き起こします。

debug

これがTrueの場合、サーバーはコンソールログメッセージを書き出し、リクエストを処理した時に引き起こされたPython例外のスタックトレースを表示します。 さらに、レスポンスのボディ内にそのスタックトレースを返します。

hythonでサーバーを起動した場合、これはreload_source_changesTrueに設定します。

hou.webServer.isInDebugMode()を使用することで、サーバーがデバッグモードで起動されているかどうかをチェックすることができます。

max_num_threads

同時リクエストを処理する際に生成される同時ワーカースレッドの最大個数。

houパッケージでは、どのコールもグローバルロックを取得し、Pythonハンドラー関数は必ずGILを取得しなければならないので、通常ではハンドラーは同時に実行することができません。 静的ファイルの提供、または、Houdiniを必要としないPythonからのブロッキングI/Oオペレーションの作成をする場合には、マルチスレッドの目玉である速度面のメリットが得られます。

in_background

この関数に別スレッドでサーバーを起動させるかどうか。 in_background=Falseを与えると、サーバーを中断しない限り、または、サーバーコードがhou.webServer.requestShutdown()をコールしない限り、この関数は決して戻りません。

in_backgroundがNone(デフォルト値)の場合、グラフィカルHoudiniセッションではTrueに、それ以外ではFalseに設定されます。

reload_source_changes

これがTrueの場合、サーバーは、読み込まれたすべてのPythonソースファイルを監視し、それらのファイルのどれかが変更される度にサーバーを再起動します。 これによって、手動でサーバーを停止して再起動することなく、Pythonコードを編集してその結果を確認することができます。

max_in_memory_file_upload_size

一時ファイルに書き出すのではなくメモリに保持されるアップロードファイルの最大サイズ(単位はバイト)。 デフォルトでは、サーバーは2.5MB以下のアップロードファイルをメモリに保持しますが、それより大きいファイルはディスクに書き出します。 この引数によって、その閾値を上書きすることができます。

max_request_size

HTTPリクエストの最大サイズ(単位はバイト)。 これがNoneの場合、デフォルト値は3GBです。

settings

Webサーバーに設定を追加する設定ファイルを指定します。 現在のところ、ここにはCORSホワイトリストのみ指定可能です。 これは、Django設定ファイルと同様に動作します。

ports

サーバーがリッスンする追加ポート。

See also

hou.webServer

クラス

開始と停止

Webリクエストの処理とレスポンス

APIコール

  • hou.webServer.apiFunction()

    HoudiniのWebサーバー上のAPIエンドポイントを介してコール可能な関数のデコレータで、JSONレスポンスまたはバイナリレスポンスを返します。

  • hou.webServer.APIError

    apiFunctionハンドラーでこの例外を引き起こしてエラーを示します。