Все примеры, которые я могу найти для urlpatterns для сайтов django, имеют отдельную запись для входящих URL, которые не имеют косой черты, или корневой папки. Затем они обрабатывают подпапки в каждой отдельной строке. Я не понимаю, почему простой
/?
регулярное выражение не позволяет, чтобы они были в одной простой строке.
Рассмотрим следующее. Давайте назовем проект Django Baloney, а имя приложения - Cheese. Так что в проекте urls.py у нас есть что-то вроде этого, чтобы позволить приложениям urls.py обрабатывать его запросы ...
urlpatterns = patterns('',
(r'^cheese/', include('Baloney.Cheese.urls')),
)
затем в приложениях Cheese urls.py, я не понимаю, почему эта простая строка не сработает как истина для всех входящих подпутей URL, включая пустое значение ...
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-адреса - это динамические слагы, извлекаемые из БД, поэтому я выполняю все сопоставления с содержимым в своих представлениях, и мне просто нужны шаблоны URL-адресов для пересылки значений. Я знаю, что работает следующее, но не понимаю, почему все это нельзя поместить в одну строку с /? регулярное выражение перед окончанием знака $.
(r'^$', views.cheeseapp_views, {'reqPath':''}),
(r'^(?P<reqPath>.*)/$', views.cheeseapp_views),
Цените любые идеи.