アーキテクチャ

全体像

本フレームワークは、tkCGIApplication を中心に構成される。

  • 入力: 環境変数、stdinsys.argv

  • ルーティング: @app.route('/path')

  • 出力: HTML または JSON

  • 補助: ログ、テンプレート、簡易認証、HTTP リクエスト

処理フロー

  1. tkCGIApplication のインスタンスを生成する。

  2. 必要なら configure() でログや設定ファイルを与える。

  3. route() デコレータでエンドポイントを登録する。

  4. run() を呼ぶ。

  5. run() は入力パラメータを取得し、action で分岐してルート関数を呼ぶ。

  6. ルート関数は HTML 文字列・JSON 文字列・tkHTMLElement を返す、または直接 print する。

設計上の特徴

  • CGI だけでなく CLI 実行もある程度考慮されている。

  • print をリダイレクトし、未初期化時でも HTML ヘッダを出せるようにしている。

  • ルーティング API を Flask 風に寄せている。

  • ビジネスロジックと Web 入出力を厳密には分離していないが、将来分離しやすい構造を残している。

制約

  • リクエストオブジェクトやレスポンスオブジェクトの抽象化は薄い。

  • WSGI 準拠ではない。

  • セッション管理は未実装または将来拡張前提である。

  • セキュリティは簡易用途向けであり、インターネット公開前提ではない。