setting.py (APP_MOUNT |
urls.py (アプリケーション・フォルダー) |
URL (開発サーバー) |
逆引き パラメータ (urls_for) |
1 | 設定なし |
view_groups = [ ViewGroup( Rule('/',endpoint='index', view='myapp.views.index'), ) ] |
http://localhost: |
myapp/ |
---|---|---|---|---|
2 | APP_MOUNT |
view_groups = [ ViewGroup( Rule('/', endpoint='index', view='myapp.views.index'), ) ] |
http://localhost: |
myapp/ |
3 | APP_MOUNT |
view_groups = [ ViewGroup( Rule('/',endpoint='index', view='myapp.views.index'), ) ] |
http://localhost: |
myapp/ |
4 | 設定なし |
view_groups = [ ViewGroup(Rule('/', endpoint='index', view='myapp.views.index'), add_app_prefix_to_endpoint=False) ] |
http://localhost: |
index |
5 | 設定なし |
view_groups = [ ViewGroup(Rule('/', endpoint='index', view='myapp.views.index'), ViewGroup(Rule('/test', endpoint='index'), ) ] |
http://localhost: http://localhost: |
myapp/ |
[setting.py] 及び [urls.py] が設定値、[URL] 及び [逆引きパラメータ] が結果になる。
URLと逆引きパラメータは、setting.pyとurls.pyの設定値によって複合的に影響されるのがわかる。
パターン1のアプリケーション・フォルダーのurls.py設定を、プロジェクト・フォルダーのurls.pyに設定した場合も例示する。
setting.py (APP_MOUNT |
urls.py (プロジェクト・フォルダー) |
URL (開発サーバー) |
逆引き パラメータ (urls_for) |
6 | 設定なし |
view_groups = [ ViewGroup( Rule('/',endpoint='index', view='myapp.views.index'), ) ] |
http://localhost: |
index |
---|
プロジェクト・フォルダーのurls.py に記述した内容は、setting.py の設定値には影響されないのがわかる。
次に各設定値がURLマッピングにどう影響するか図示してみる。
アプリケーション・フォルダーにあるurls.pyでのURL設定値を図示(パターン1)
プロジェクト・フォルダーにあるurls.pyでのURL設定値を図示(パターン6)
図示してみるとよく判るのだが、Kay(werkzeug)のURLマッピングは複雑であるが構造化されている。このため大きなアプリケーションを構築する場合などに、URLの衝突が発生しにくくなっている。