当前位置: 首页 > 知识库问答 >
问题:

在url中使用path()或url()更好吗。django 2.0的py?

衡玄裳
2023-03-14

在django在线课程中,讲师让我们使用url()函数调用视图并使用urlpatterns列表中的正则表达式。我在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()来启动我们?还是不同的工作需要不同的工具?

共有3个答案

喻选
2023-03-14

path在Django 2.0中是全新的,Django 2.0几周前才发布。大多数教程不会更新新语法。

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

太叔繁
2023-03-14

新的django.urls.path()函数允许更简单、更易读的URL路由语法。例如,这个例子来自以前的Django版本:

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中。进一步阅读django文件

尉迟安民
2023-03-14

从Django文档获取url

url(regex,view,kwargs=None,name=None)此函数是django的别名。网址。重新设置路径()。在未来的版本中,它可能会被弃用。

pathre_path之间的关键区别在于path使用不带正则表达式的路由

您可以使用re_path进行复杂的正则表达式调用,而只使用path进行更简单的查找

 类似资料:
  • 问题内容: 在django在线课程中,讲师让我们使用该函数调用视图并使用列表中的正则表达式。我在YouTube上看到了其他示例。例如 但是,在阅读Django教程时,他们改用例如: 此外,正则表达式似乎不适用于该函数,因为使用将找不到视图。 是否使用没有正则表达式匹配的正确方法前进?是更强大,但更复杂,所以他们正在使用与开始我们吗?还是针对不同工作使用不同工具的情况? 问题答案: 从Django文

  • 我目前正在使用一个文章显示页面在Liferay 6.2中显示我的web内容。我正在试图找出如何在之后编辑我的友好URL的路径。 当前URL: 希望的URL:

  • 问题内容: 我有一个在列表中存储一些数据的对象。该实现可能会在以后更改,并且我不想向最终用户公开内部实现。但是,用户必须具有修改和访问此数据集合的能力。目前我有这样的事情: 这是否意味着我已允许内部实施细节泄漏出去?我应该这样做吗? 问题答案: 这仅取决于您是否希望您的用户能够索引数据?如果是,请使用列表。两者都是接口,因此您不会泄漏实现细节,实际上,您只需要确定所需的最低功能即可。

  • 您可以使用replaceState转换阻止将项添加到浏览器的历史记录中。 您可以通过在Route上使用queryParams配置哈希来指定它,并通过将replace transition设置为true来选择进入replaceState转换。 语法 (Syntax) Ember.Route.extend ({ queryParams: { queryParameterName: {

  • 当我在Liferay中创建页面(我使用的是6.2)时,它会收到一个自动生成的友好URL,遵循几个内部规则。 例如,如果我创建一个名为的页面,它将自动接收到友好的URL。 另外,如果我创建页面aaa作为页面