djangoサイトのurlpatternsで見つけたすべての例には、先頭にスラッシュがない着信URLまたはルートフォルダー用の個別のエントリがあります。次に、個々の行のサブフォルダーを処理します。なぜ単純なのか分かりません
/?
正規表現では、これらを1行にまとめることはできません。
次のことを考慮して、DjangoプロジェクトをBaloneyと呼びましょう。アプリ名は、Cheeseです。したがって、プロジェクトurls.pyには、アプリurls.pyがそのリクエストを処理できるようにするための次のようなものがあります...
urlpatterns = patterns('',
(r'^cheese/', include('Baloney.Cheese.urls')),
)
次に、Cheeseアプリのurls.py内で、この1つの単純な行が空白の値を含むすべての着信URLサブパスに対してtrueとしてトリガーされない理由がわかりません...
urlpatterns = patterns('',
(r'^(?P<reqPath>.*)/?$', views.cheeseapp_views),
)
代わりに、空白の場合と一致しますが、値が存在する場合とは一致しません。それで...
http://baloneysite.com/cheese/ --> MATCHES THE PATTERN
http://baloneysite.com/cheese/swiss --> DOES NOT MATCH
基本的に、reqPath変数をキャプチャして、そこにあるもの(空白または''でも)を含めますが、末尾のスラッシュがある場合は含めないようにします。
URLはDBから取得された動的なスラッグであるため、ビューのコンテンツまですべてのマッチングを行い、値を転送するためにURLパターンが必要です。以下が機能することは知っていますが、なぜこれをすべて/で1行に配置できないのかわかりません。終了$記号の前の正規表現。
(r'^$', views.cheeseapp_views, {'reqPath':''}),
(r'^(?P<reqPath>.*)/$', views.cheeseapp_views),
洞察に感謝します。