-
Houdiniの組み込みウェブサーバーは、Python関数(またはC++拡張)をコールしてウェブリクエストを制御できるようにC++で記述されたマルチスレッドなHTTPサーバーです。
-
この主な用途は、Houdiniシーンデータにアクセスできるサービス指向のAPIを構築することです。
-
グローバルな組み込みウェブサーバーは、起動中のHoudiniインスタンス毎に1つしか起動できません。
-
hwebserver.urlHandlerデコレータを使用してパスハンドラーを指定したり、hwebserver.apiFunctionデコレータを使用してAPIを構築することができます。
-
それから、hwebserver.runを使用して組み込みウェブサーバーを開始することができます:
hwebserver.run(8008, debug=True)
Note
この関数は、非グラフィカルなセッションからコールした場合には 何も返しません (サーバーが中断された場合、または、サーバーコードがhwebserver.requestShutdownをコールした場合を除く)。
-
コマンドラインからサーバーを試すには:
-
server.py
ファイル内に以下のコードを記述します:server.py
import hou import hwebserver @hwebserver.urlHandler("/") def my_handler(request): return hwebserver.Response( "Hello from Houdini %s" % hou.applicationVersionString()) if __name__ == "__main__": hwebserver.run(8008, debug=True)
-
Houdini環境がセットアップされたシェル内で、
hython server.py
を実行します。 -
ブラウザから
http://127.0.0.1:8008/
にアクセスすると、その出力が表示されます。 -
LinuxやMacの場合は⌃ Ctrl + C、Windowsの場合は⌃ Ctrl + Break/⌃ Ctrl + ScrLkを押すことでサーバーが停止されます。
-
サブトピック ¶
クラス ¶
-
Houdiniのウェブサーバーに送信されるリクエスト。
-
Houdiniのウェブサーバーから送り返されるレスポンス。
-
Houdiniのウェブサーバーに送信されるリクエストにアップロードされたファイル。
-
汎用のHTTPハンドラー。
-
汎用の非同期HTTPハンドラー。
-
組み込みサーバーをWebSocketに対応させるための基底クラス。
開始と停止 ¶
-
Houdiniのウェブサーバーを開始します。
-
すべてのオープンリクエストが処理された後にシャットダウンするようにHoudiniのウェブサーバーに命令します。
-
Houdiniのウェブサーバーがデバッグモード(でdebug=True)で起動されていればTrueを返します。
ウェブリクエストの処理とレスポンスの返し ¶
-
Houdiniのウェブサーバーへのリクエストを制御する関数のデコレータ。
-
HTTPエラーを表現したResponseオブジェクトを生成します。
-
404 Not Found HTTPエラーを表現したResponseオブジェクトを生成します。
-
ファイルの内容を送信するResponseオブジェクトを生成します。
-
301 Movedまたは302 FoundのHTTPレスポンスを表現したResponseオブジェクトを生成します。
-
hwebserver.registerStaticFilesDirectory
指定したプリフィックスにマッチしたURLに対して自動的にファイルを提供するために、指定したディレクトリをチェックするようにHoudiniのウェブサーバーに命令します。
-
パスプリフィックスで使用するDjangoなどのWSGI準拠のアプリケーションを登録する際に使用する関数。
-
パスプリフィックスで使用するDjangoなどのASGI準拠のアプリケーションを登録する際に使用する関数。
-
特定のポートの設定を調整します。
ウェブソケット ¶
-
組み込みサーバーをWebSocketに対応させるための基底クラス。
-
HoudiniのウェブサーバーにWebSocketクラスを登録するデコレータ。
APIコール ¶
-
Houdiniウェブサーバー上のAPIエンドポイント経由で関数をコールを可能にするデコレータで、JSON形式またはバイナリ形式のレスポンスを返します。
-
apiFunctionハンドラー内でこの例外を引き起こしてエラーを示します。