对于 django 2.0,在 urls.py 中使用 path ()或 url ()是否更好?

在 django 在线课程中,老师让我们使用 url()函数调用视图并使用 urlpattern 列表中的正则表达式。我在 Youtube 上看到过这样的例子。 例如:。

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


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




#and in polls/urls.py


urlpatterns = [
url(r'^$', views.index, name="index"),
]

然而,在阅读 Django 教程时,他们使用的是 path(),例如:

from django.urls import path
from . import views


urlpatterns = [
path('', views.index, name="index"),
]

此外,正则表达式似乎不与 path()函数一起工作,因为使用 path(r'^$', views.index, name="index")不会找到 mysite.com/polls/视图。

使用不带正则表达式的 path()是否正确?是 url()更强大,但更复杂,所以他们使用 path()开始我们?或者这是一个不同工作的不同工具的案例?

132673 次浏览

path只是 Django 2.0中的新版本,该版本仅在几周前发布。大多数教程都没有针对新语法进行更新。

它当然应该是一种更简单的做事方式; 但我不会说 URL 更强大,您应该能够以任何一种格式表示模式。

来自 网址的 Django 文档

这个函数 是 django.urls.re_path()的别名 未来版本。

pathre_path之间的关键区别是 path使用没有正则表达式的路由

对于复杂的正则表达式调用,可以使用 re_path,而对于简单的查找,只需使用 path

正则表达式似乎不适用于带有以下参数的 path()函数: path(r'^$', views.index, name="index")

应该是这样的: path('', views.index, name="index")

第一个参数必须为空才能输入正则表达式。

Path 是 Django 2.0的一个新特性。 这里解释: Https://docs.djangoproject.com/en/2.0/releases/2.0/#whats-new-2-0

看起来更像 Python 的方式,并且允许在传递给 view 的参数中不使用正则表达式... 例如,可以使用 int ()函数。

新的 django.urls.path()函数支持更简单、更易读的 URL 路由语法:

url(r'^articles/(?P<year>[0-9]{4})/$', views.year_archive)

可以这样写:

path('articles/<int:year>/', views.year_archive)

以前版本的 django.conf.urls.url()函数现在可以使用 django.urls.re_path() 。旧的位置保持向后兼容性,不会立即弃用。旧的 django.conf.urls.include()功能现在可以从 django.urls导入,因此您可以使用:

from django.urls import include, path, re_path

URLConfs。为进一步阅读 姜戈医生

从 v2.0开始,许多用户都在使用 path,但是我们可以使用 path 或 url。 例如,在 django 2.1.1中 通过 url 映射到函数的过程如下

from django.contrib import admin
from django.urls import path


from django.contrib.auth import login
from posts.views import post_home
from django.conf.urls import url


urlpatterns = [
path('admin/', admin.site.urls),
url(r'^posts/$', post_home, name='post_home'),


]

其中 post 是一个 application & post _ home 是 views.py 中的一个函数