为什么 Django 3.0.6 使用 url() 函数而不是 path() 函数生成 urlpatterns 变量
Why does Django 3.0.6 generate the urlpatterns variable using the url() function instead of the path() function
创建并检查我是 运行 一个 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()
and/or re_path()
个实例的序列。”(https://docs.djangoproject.com/en/3.0/topics/http/urls/#syntax-of-the-urlpatterns-variable)
如果是这种情况,为什么它不生成为 path('admin/', admin.site.urls)
?
谁能解释一下?根据我的理解,url()
函数是 outdated/will 被折旧,但 Django 似乎正在将它融入项目中。我相信我应该使用 path()
但我不确定。
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)
创建并检查我是 运行 一个 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()
and/or re_path()
个实例的序列。”(https://docs.djangoproject.com/en/3.0/topics/http/urls/#syntax-of-the-urlpatterns-variable)
如果是这种情况,为什么它不生成为 path('admin/', admin.site.urls)
?
谁能解释一下?根据我的理解,url()
函数是 outdated/will 被折旧,但 Django 似乎正在将它融入项目中。我相信我应该使用 path()
但我不确定。
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)