[TurboGears] 複数のコントローラをパッケージにまとめる。
問題点
TurboGearsでは、新規にプロジェクトを作成すると、<プロジェクト名>/<パッケージ名>/controllers.pyというファイルが生成され、ここにRootコントローラが置かれます。しかし大規模なプロジェクトではcontrollers.pyにすべてのコントローラを記述することは難しく、関連するコントローラごとにひとつのファイルにまとめたいです。
- 作者: Mark Dangoor, Kevin Sayfan, Gigi Ramm
- 出版社/メーカー: Prentice Hall
- 発売日: 2006/11/07
- メディア: ペーパーバック
- クリック: 50回
- この商品を含むブログ (6件) を見る
上の本では、subcontrollersパッケージを作成するといった手法を使っていますが、できればRootコントローラがあるcontrollers.pyも含めたコントローラ専用のパッケージを作成したいです。
解決策
Rootコントローラがあるcontrollers.pyを、<プロジェクト名>/<パッケージ名>/controllersディレクトリに、root.pyとして移動します(<プロジェクト名>/<パッケージ名>/controllers/__init__.pyも作成して下さい)。次に、start-<プロジェクト名>.pyの最後にあるコードを、以下のように書き換えます。
from <パッケージ名>.controllers.root import Root start_server(Root())