概要

設計方針

本フレームワークの基本方針は次の通りである。

  1. CGI 環境でそのまま動くこと

  2. 1 ファイルスクリプトでも運用しやすいこと

  3. HTML と JSON の両方を簡単に返せること

  4. 開発中のデバッグを容易にすること

  5. 本格化した場合に Flask へ移植しやすい構造を保つこと

構成モジュール

tkBase.py

共通ユーティリティ。例外の HTML 出力、HTML 開始・終了、簡易 ini 読み込み、パス置換などを担う。

tkCGIApplication.py

フレームワーク本体。ルーティング、設定読込、HTML/JSON 出力、入力取得、簡易認証、ログ、HTTP 通信補助などを担う。

tkFormData.py

multipart/form-data を自前で処理する補助モジュール。

tkHTMLDocument.py

HTML 要素を Python オブジェクトとして構築するための補助モジュール。

想定利用パターン

最小構成では、以下のような書き方を想定する。

from tkCGIApplication import tkCGIApplication

app = tkCGIApplication(__name__)

@app.route('/')
def index():
    app.init_html()
    return '<h1>Hello</h1>'

if __name__ == '__main__':
    app.run()

JSON API の場合は init_html(target='json') を呼び、文字列化した JSON を返す。