python - 我什么时候应该使用 'path' 而不是 're_path' ?

标签 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'),
    ...
]
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'),
    ...
]

根据我的理解,path 语法更具可读性,并提供可以从 URL 捕获信息并转换类型的尖括号。

我是否应该在需要正则表达式时使用re_path,而在所有其他情况下使用path

最佳答案

re_path'old' way of handling urls 的一个实现,以前(版本 <2)由 url 完成来自 django.conf.urls

请参阅 Django 2.0 release notes 中的段落关于这个。

也就是说,我建议使用 path只要有可能!

我看到的原因:

  1. path 的引入是为了让事情变得更简单,这显然是 Django 开发者想要走的方向。因此,当您使用 path 时,您将遵循这个方向,从而最大限度地降低必须使您的代码库适应新变化的风险。

  2. 虽然 path 不仅仅是试图让事情变得更简单的结果,但它实际上确实让事情变得更简单和更具可读性,这本身就是为什么 的一个很好的理由如果两个选项都是一个选项,则应首选路径

现在 re_path 存在是有原因的,所以在某些情况下使用 re_path 可能仍然是更好的选择。一种情况显然是需要非常定制的转换器并达到 custom converters for 'path' 可行的极限。 .另一种使用 re_path 的场景可能是将具有相当复杂的 url 转换器的系统从 Django 1.x 升级到 2.x:只需将 url 替换为 re_path 命令可以更省时,因此是一种理想的方法。

关于python - 我什么时候应该使用 'path' 而不是 're_path' ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55285814/

相关文章:

python - Django 自定义主键

Django 将已知的确切字符串作为 url 参数传递

Django 网址调试器

python - 可视化两个数值数组之间的差异

python - 时间戳超出平台 localtime()/gmtime() 函数的范围

python - django 查询对象上的 Iterator()

python - Django 将数据从两个模型传递到模板

python - 如何在python中的文件中间插入换行符

python - 使用 Python PIL 打开图像

django - 如何在 django 中重写基本 url 以在所有页面的 url 中添加登录用户名而不是应用程序名称?