プロジェクトの urls.py では、各アプリ単位の urls.py へ関連付けを行います。
例)
from django.contrib import admin
from django.conf.urls import include, url
from django.views.generic import RedirectView
urlpatterns = [
url(r'^$', RedirectView.as_view(url='hello/')), ※【1】
url(r'^hello/', include('hello.urls', namespace='hello')), ※【2】
url('admin/' , admin.site.urls), ※【3】
]
URL は正規表現で記述し、マッチしたコードを処理する
| 【1】リダイレクト設定 |
何も文字列がない場合なので http://hoge.com/ の様なドメイン名までのURLにマッチする
リダイレクト先の URL が hello となっているので【2】にマッチする
|
| 【2】各アプリへ飛ばす |
http://hoge.com/hello/ でマッチし、hello モジュールの urls.py へ処理が遷移する。また、、第2引数にネームスペース名 hello も記述する。 |
| 【3】アドミン |
DJANGO 標準で搭載されている ADMIN ページを使用する場合はこのままで |
【注意】
ドメインのみの「r'^$'」のパターンを他のアプリに関連付ける場合は、リダイレクトで対応する事!
namespace が重複すると警告が発生します。また、URLの逆引きもできなくなります。