実行モデル

入力ソース

本フレームワークは、入力を以下の優先順位で扱う。

  • POST リクエスト

  • GET の QUERY_STRING

  • CLI 実行時の sys.argv

  • PATH_INFO

action の決定

ルーティング対象のアクションは、概ね次の流れで決まる。

  • クエリパラメータまたは PATH_INFO から action を取得

  • そのキーが routes 辞書に登録されていれば対応関数を呼ぶ

  • 無ければ /action 形式も試す

  • それでも無ければエラー応答とする

出力モデル

HTML 応答

init_html(target='html') を呼ぶと、Content-Type: text/html を出力し、 必要に応じて X-Frame-OptionsContent-Security-Policy も出力する。

JSON 応答

init_html(target='json') を呼ぶと、Content-Type: application/json を出力する。 その後、JSON 文字列を return または print する。

テンプレート

Jinja2 を用いる。テンプレート文字列を直接与える方法と、テンプレートファイルをロードする方法の両方がある。

ログ

configure(log_path=...) でログ出力先を設定できる。ロギングは Python の logging に委譲される。