Yur*_*ots 9 python django django-urls
这是Django Docs 中的一个例子:
from django.urls import include, path
urlpatterns = [
path('index/', views.index, name='main-view'),
path('bio/<username>/', views.bio, name='bio'),
...
]
Run Code Online (Sandbox Code Playgroud)
from django.urls import include, re_path
urlpatterns = [
re_path(r'^index/$', views.index, name='index'),
re_path(r'^bio/(?P<username>\w+)/$', views.bio, name='bio'),
...
]
Run Code Online (Sandbox Code Playgroud)
根据我的理解,path语法更具可读性,并提供了可以从 URL 捕获信息并转换类型的尖括号。
我应该re_path 只在需要正则表达式时使用并path用于所有其他情况吗?
joj*_*ojo 13
re_path是处理 urls的“旧”方式的实现,以前(版本 <2)由urlfrom完成django.conf.urls。
请参阅Django 2.0 发行说明中关于此的段落。
话虽如此,我建议path您尽可能使用!
我看到的原因:
path引入的目的是让事情变得更简单,这显然是 Django 开发人员想要去的方向。因此,在使用时path遵循这个方向,从而最大限度地降低必须使代码库适应新变化的风险。
虽然path这不仅仅是试图让事情变得更简单的结果,但它实际上确实让事情变得更简单和更具可读性,path如果这两种选择都是一种选择,那么这就是为什么应该首选的一个很好的理由。
现在re_path存在是有原因的,所以在某些情况下使用re_path可能仍然是更好的选择。一种情况显然是当需要非常定制的转换器并达到使用'path' 的自定义转换器可行的极限时。另一个使用场景re_path可能是将具有相当复杂的 url 转换器的系统从 Django 1.x 升级到 2.x:简单地替换urlwithre_path命令可以更省时,因此是一种理想的方法。
| 归档时间: |
|
| 查看次数: |
5900 次 |
| 最近记录: |