Синтаксис шаблона URL Django - необработанная строка
Возможно, это прозвучит как вопрос новичка, но мне просто интересно, в чем разница между
path('index/', views...
И...
path(r'^index/$', views...
)Я только что написал свое первое веб-приложение и использую первый пример, но я вижу, что все используют синтаксис необработанной строки в примерах, которые я просматриваю. Есть ли какие-нибудь различия между тем, как django обрабатывает эти два примера?
Заранее спасибо.
Метод path
является методом полного соответствия, поэтому, когда ваш путь будет точно соответствовать описанному, у вас будет возможность обработать запрос с тем представлением, которое вы описали.
Знак re_path
позволяет вам больше контролировать регулярные выражения.
Расширим ваш пример r"^index/?$"
, здесь знак "?" позволяет пользователю использовать или не использовать косую черту "/" в конце URL.
Вы можете поиграть с regexp здесь: https://regex101.com
Документация Django о re_path находится здесь: https://docs.djangoproject.com/en/dev/topics/http/urls/#using-regular-expressions
Потребности бизнеса могут быть очень сложными, и, возможно, вы не сможете подобрать нужный формат URL, используя только функции path
, но в 99% этот вариант будет достаточным.