Djangoの以下の2つのURLパターンの違いは何ですか?
url(r'^$', views.indexView, name='index'),
url(r'', include('registration.urls'))
私の理解では、「^ $」と「」はどちらも空の文字列を指します。 '^ $'と ''は実際に何を指定しますか?
正規表現では、^
と$
は特殊文字です。
^
(キャレット):
^
は文字列の先頭に一致します。
私の正規表現が^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
ページに移動します。
^$
は、開始と終了の間に何もないことを意味します... this only空の文字列に一致します
''
は空の文字列を意味します(ただし、文字列全体の最初または最後については何も指定しません)。したがって、文字列内で何かに遭遇すると、'asdasd'
に一致するものがよく表示されます。最初に...残りは新しいURLルールスクリプトに渡されます(この場合はすべて残ります)
代わりに、2番目のルールが'a'
の場合、それはasdasd
の最初のaと一致し、sdasd
を新しいURL一致ルールセットに渡します。
これはおそらく大幅に単純化しすぎているという免責事項ですが、基本的には正しいです
^ $-URL文字列の開始点と終了点を指定します。
'' -URLメソッドの空の文字列は、URLパターンで定義されていない他のURLパターンが検出された場合、対応する空の文字列ビューを呼び出す必要があることを示しています
^ $は、これら2つの特殊文字の間で文字列が一致していることを意味します