Разница между '^ $' и '' в url django

В чем разница между двумя шаблонами url в django?

url(r'^$', views.indexView, name='index'),

url(r'', include('registration.urls'))

Насколько я понимаю, "^ $" и "" относятся к пустой строке. Что означает '^ $' и '' на самом деле?

Ответ 1

В регулярных выражениях ^ и $ являются специальными символами.

^ (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.

Ответ 2

^$ означает, что между началом и концом ничего нет... этот только соответствует пустой строке

'' означает пустую строку (но не указывает ничего о начале или конце всей строки), поэтому, когда вы сталкиваетесь с чем-либо в строке, которую он говорит хорошо, что соответствует 'asdasd', например, имеет соответствующую пустую строку в начало... остальные передаются новым правилам URL script (в этом случае все остается)

если вместо этого ваше второе правило было 'a', то оно соответствовало бы первому a в asdasd и передало sdasd новому набору правил соответствия URL

отказ от ответственности, что это, вероятно, грубое упрощение, но в основном истинное

Ответ 3

^ $- указывает начальную и конечную точки строки URL.

'' - Пустая строка в методе URL говорит, что если какой-либо другой шаблон URL встречается, который не определен в шаблоне url, тогда соответствующее пустое представление строки должно быть вызвано

Ответ 4

^ $ означает, что вы соответствуете строке между этими двумя специальными символами