-
Houdiniの組み込みWebサーバーは、C++で記述されたマルチスレッドのHTTPサーバーで、Python関数(またはC++拡張)をコールすることでWebリクエストを処理することができます。
-
この第一に意図された用途は、Houdiniシーンデータにアクセスできるサービス志向のAPIsを構築することです。
-
実行中のHoudiniインスタンス毎に1つだけグローバルの組み込みWebサーバーを持ちます。
-
hou.webServer.urlHandler()デコレータを使用してパスハンドラーを指定したり、または、hou.webServer.apiFunction()デコレータを使用してAPIを構築することができます。
-
次に、hou.webServer.run()を使用して組み込みWebサーバーを起動することができます:
hou.webServer.run(8008, debug=True)
Note
この関数を非グラフィカルセッションからコールした場合、(サーバーが中断されない限り、または、サーバーコードがhou.webServer.requestShutdown()をコールしない限り) 何も返されません 。
-
コマンドラインからサーバーを試したいのであれば:
-
server.py
ファイル内に以下のコードを記述します:server.py
import hou @hou.webServer.urlHandler("/") def my_handler(request): return hou.webServer.Response( "Hello from Houdini %s" % hou.applicationVersionString()) if __name__ == "__main__": hou.webServer.run(8008, debug=True)
-
Houdini環境がセットアップされたシェル内で、
hython server.py
を実行します。 -
ブラウザのパスに
http://127.0.0.1:8008/
を指定して、その出力を確認します。 -
LinuxやMacの場合は⌃ Ctrl + Cを、Windowsの場合は⌃ Ctrl + Break/⌃ Ctrl + ScrLkを押してサーバーを停止します。
-
サブトピック ¶
クラス ¶
-
HoudiniのWebサーバーに送信されるリクエスト。
-
HoudiniのWebサーバーから返されるレスポンス。
-
HoudiniのWebサーバーに送信されるリクエスト内のアップロードファイル。
開始と停止 ¶
-
HoudiniのWebサーバーを起動します。
-
hou.webServer.requestShutdown()
開いたリクエストすべてを提供した後にシャットダウンするようにHoudiniのWebサーバーに命令します。
-
HoudiniのWebサーバーがデバッグモード(でdebug=True)で起動されていればTrueを返します。
Webリクエストの処理とレスポンス ¶
-
HoudiniのWebサーバーへ送信されるリクエストを制御する関数のデコレータ。
-
HTTPエラーを表現したResponseオブジェクトを生成します。
-
hou.webServer.notFoundResponse()
404 Not Found HTTPエラーを表現したResponseオブジェクトを生成します。
-
ファイルの内容を送信するResponseオブジェクトを生成します。
-
301 Movedまたは302 FoundのHTTPレスポンスを表現したResponseオブジェクトを生成します。
-
hou.webServer.registerStaticFilesDirectory()
指定したファイルディレクトリをチェックして、指定したパス接頭辞に合わせたURLsを自動的に提供するようにHoudiniのWebサーバーに命令します。
-
hou.webServer.registerOpdefPath()
指定した接頭辞をハンドラーとして使用してopdefリクエストを提供するようにHoudiniのWebサーバーに命令します。
APIコール ¶
-
HoudiniのWebサーバー上のAPIエンドポイントを介してコール可能な関数のデコレータで、JSONレスポンスまたはバイナリレスポンスを返します。
-
apiFunctionハンドラーでこの例外を引き起こしてエラーを示します。