2010年12月4日土曜日

Kay URLマッピング① 設定箇所

KayではURLマッピングにwerkzeugを使っているため、設定方法がDjangoとは大きく違っている。
このため初めてKayに触れる時は、URLマッピング設定に対して戸惑いが大きい。

このKayのURLマッピングについて説明を書いて行く。今回は設定箇所について解説する。

KayではURLマッピングの設定が3箇所存在する。
  1. settings.py
  2. プロジェクトのurls.py
  3. アプリケーションのurls.py

以下、各ファイルについて簡単に説明する。
  1. settings.py

    アプリケーション作成時に、INSTALLED_APPS にアプリケーションを登録する。
    この時、APP_MOUNT_POINTS にアプリケーションをどのURLで動かすか指定する。
    APP_MOUNT_POINTSに設定を行わなければ、デフォルト設定でアプリケーション名のURLにマウントされる。
    INSTALLED_APPS = (
      'myapp',
    )
    APP_MOUNT_POINTS = {
      'myapp': '/',
    }
    
    INSTALLED_APPSはタプル型で、APP_MOUNT_POINTSは辞書型で記述する。
    設定例では、アプリケーションとして myapp を登録し、myapp のマウントポイントとして スラッシュ(/)を定義している。

  2. プロジェクトのurls.py

    プロジェクト・フォルダーにあるurls.pyファイル。
    プロジェクト全体で利用するURLを登録する。
    アプリケーションのURLはアプリケーションのurls.pyに登録する。
    from kay.routing import (
      ViewGroup, Rule
    )
     
    view_groups = [
      ViewGroup(
        Rule('/_ah/queue/deferred', endpoint='deferred',
             view='kay.handlers.task.task_handler'),
        Rule('/maintenance_page', endpoint='_internal/maintenance_page',
             view='kay._internal.views.maintenance_page'),
      )
    ]
    
    設定例は、python kay/manage.py startproject myprj コマンドでプロジェクトを生成した時のurls.py設定。

  3. アプリケーションのurls.py

    アプリケーション・フォルダーにあるurls.pyファイル。
    アプリケーションに関するURLを登録する。
    from kay.routing import (
      ViewGroup, Rule
    )
     
    view_groups = [
      ViewGroup(
        Rule('/', endpoint='index', view='myapp.views.index'),
      )
    ]                                                   
    
    設定例は、python manage.py startapp myapp コマンドでアプリケーションを作成した時のurls.py設定。 デフォルトで、スラッシュ(/)のURLに対して myapp.views.index関数がマッピング設定されている。

参考
Kayドキュメント チュートリアル
Kayドキュメント URLマッピング