2016-11-28 10 views
2

私はDjangoアプリを継承しており、urlpatterns += patterns('')とそれに相当するものがurls.pyにあることに気付きました。Djangoの空白のURLパターン

urlpatterns = patterns(
    '', 
    url(r'^index.html', render_index), 
) 

#... 

urlpatterns += patterns(
    '', 
    url(r'^page.html', another_controller), 
) 

これは何をしていますか?何か?

答えて

2

これは、patterns()関数では必要です。これは、patterns()の最初の引数がURLの共通の接頭辞接頭辞として使用されるためです。

urlpatterns = patterns('', 
    (r'^articles/(\d{4})/$', 'news.views.year_archive'), 
    (r'^articles/(\d{4})/(\d{2})/$', 'news.views.month_archive'), 
    (r'^articles/(\d{4})/(\d{2})/(\d+)/$', 'news.views.article_detail'), 
) 

のように、より簡単に記述されます:

urlpatterns = patterns('news.views', 
    (r'^articles/(\d{4})/$', 'year_archive'), 
    (r'^articles/(\d{4})/(\d{2})/$', 'month_archive'), 
    (r'^articles/(\d{4})/(\d{2})/(\d+)/$', 'article_detail'), 
) 

しかし、Djangoの1.8以来、urls.pyurlpatterns変数は単純なリストを使用して作成されます

urlpatterns = [ 
    url(r'^index.html', render_index), 
    url(r'^page.html', another_controller), 
] 

とドキュメントからこのビュー接頭引数は必要ありません。

関連する問題