Django 2.0 url() 到 path()
Posted
技术标签:
【中文标题】Django 2.0 url() 到 path()【英文标题】:Django 2.0 url() to path() 【发布时间】:2018-06-15 20:25:09 【问题描述】:我目前正在学习 Django。 到目前为止,我使用的是 Django 1.1,但现在我使用的是 Django 2.0。 Django 2.0 使用 path() 而不是 url(),我不太明白。
在 Django 1.1 中,我的网址如下所示:
url(r'^about/$', views.AboutView.as_view(), name='about'),
现在有了 Django 2,它看起来像这样
path('about/', views.AboutView.as_view(), name='about'),
到目前为止一切顺利,但我只是不明白如何转换它
url(r'^post/(?P<pk>\d+)$', views.PostDetailView.as_view(),
name='post_detail'),
以便它适用于新版本。只是将 url 更改为 path 不起作用,将 url 更改为 re_path 也不起作用。有人可以帮我解决这个问题吗?
提前致谢
【问题讨论】:
第一,url()
仍然存在,第二re_path()
完全与url()
相同;它们是同一函数的别名。因此,如果您的代码现在可以工作,那么re_path()
就不可能“不工作”。
【参考方案1】:
正则表达式要以不同的方式放置。
path('post/<int:pk>', views.PostDetailView.as_view(), name='post_detail'),
我刚刚在我的一个项目中使用与您相同的 url 尝试并测试了它,它可以工作。他们通过让在那里使用关键字int
使网址更简单和可读。
这是新方法,请阅读release notes 他们已经清楚地提到了这些变化。
【讨论】:
以上是关于Django 2.0 url() 到 path()的主要内容,如果未能解决你的问题,请参考以下文章