В чем разница между двумя шаблонами url в django?
url(r'^$', views.indexView, name='index'),
url(r'', include('registration.urls'))
Насколько я понимаю, "^ $" и "" относятся к пустой строке. Что означает '^ $' и '' на самом деле?
В чем разница между двумя шаблонами url в django?
url(r'^$', views.indexView, name='index'),
url(r'', include('registration.urls'))
Насколько я понимаю, "^ $" и "" относятся к пустой строке. Что означает '^ $' и '' на самом деле?
В регулярных выражениях ^
и $
являются специальными символами.
^
(Caret):
^
соответствует началу строки.
Допустим, что мое регулярное выражение было ^a
, тогда регулярное выражение будет искать a
в начале строки:
'a' # Matches 'a' in 'a'
'abc' # Matches 'a' in 'abc'
'def' # Not match because 'a' was not at the beginning
$
(знак доллара):
$
соответствует концу строки.
Если мое регулярное выражение было b$
, то оно будет соответствовать b
в конце строки:
'b' # Matches 'b' in 'b'
'ab' # Matches 'b' in 'ab'
'abc' # Does not match
Использование r'^$'
:
Использование ^
и $
вместе как ^$
будет соответствовать пустой строке/строке.
url(r'^$', views.indexView, name='index')
Когда Django встречает пустую строку, она перейдет на страницу index
.
Использование r''
:
Когда вы используете r''
, Django будет искать пустую строку в любом месте URL-адреса, что верно для каждого URL-адреса.
Итак, если ваш urlpattern был таким:
url(r'', views.indexView, name='index')
Все ваши URL-адреса отправятся на страницу index
.
^$
означает, что между началом и концом ничего нет... этот только соответствует пустой строке
''
означает пустую строку (но не указывает ничего о начале или конце всей строки), поэтому, когда вы сталкиваетесь с чем-либо в строке, которую он говорит хорошо, что соответствует 'asdasd'
, например, имеет соответствующую пустую строку в начало... остальные передаются новым правилам URL script (в этом случае все остается)
если вместо этого ваше второе правило было 'a'
, то оно соответствовало бы первому a в asdasd
и передало sdasd
новому набору правил соответствия URL
отказ от ответственности, что это, вероятно, грубое упрощение, но в основном истинное
^ $- указывает начальную и конечную точки строки URL.
'' - Пустая строка в методе URL говорит, что если какой-либо другой шаблон URL встречается, который не определен в шаблоне url, тогда соответствующее пустое представление строки должно быть вызвано
^ $ означает, что вы соответствуете строке между этими двумя специальными символами