Почему Django 3.0.6 генерирует переменную urlpatterns с помощью функции url () вместо функции path () - PullRequest
0 голосов
/ 28 мая 2020

После создания и проверки я запускаю виртуальную среду Python 3.6.1 и установил Django 3.0.6, я создал проект. В этом проекте файл urls.py выглядит следующим образом:

from django.conf.urls import url
from django.contrib import admin

urlpatterns = [
    url(r'^admin/', admin.site.urls),
]

Однако в документации Django 3 сказано следующее: «urlpatterns должно быть последовательностью path() и / или * 1007. * экземпляры. "(https://docs.djangoproject.com/en/3.0/topics/http/urls/#syntax -of-the-urlpatterns-variable )

Если это так, почему он не генерируется как path('admin/', admin.site.urls)?

Кто-нибудь может это объяснить? Насколько я понимаю, функция url() устарела / будет обесцениваться, но, похоже, Django встраивает ее в проект. Я полагаю, что должен использовать path(), но не уверен.

1 Ответ

1 голос
/ 28 мая 2020

path() - это новый способ генерации путей, который не использует регулярное выражение, и он немного более читабелен.

path('blog/page<int:num>/', views.page),

re_path() - старый стиль регулярного выражения (только до django 2.0 способ определения записей urlconf, у него также есть псевдоним url())

re_path(r'^blog/(?P<page>[0-9]*)/$', views.page)
...