path()的name属性,有什么用?

官网(参考:命名 URL 模式)

命名 URL 模式:
为了完成反向解析 URL ,你需要像上面那样使用 命名 URL 模式 。用于命名 URL 的字符串可以包含任意字符,并不仅限于 Python 里合法的命名。

当命名 URL 模式时,请选择名称与其他应用名称冲突的名字。如果你命名的 URL 模式 comment 和其他应用程序做了同样的事情,reverse() 查询出的 URL 会是在项目的 urlpatterns 列表里靠后的那个。

在 URL 名称前加入前缀,可以来自app名称(比如 myapp-comment 而不是 comment ),这样可以减少冲突。

如果你想覆盖某个视图,你可以有意选择一些和应用程序 相同的URL名。比如,一个常见的案例是覆盖 LoginView 。Django 的部分和绝大多数第三方 app 假设这个视图有名叫 login 的 URL 模式。如果你有名叫 login 的自定义登录视图,reverse() 将会在 django.contrib.auth.urls 之后寻找你的自定义视图。

如果多个 URL 模式的参数不同,也可以使用相同的名称。除了 URL 名称外, reverse() 会匹配参数的数量和关键字参数的名称。路径转换器也可以引发 ValueError 表示不匹配,详见 注册自定义的路径转换器。

我的理解

点击 urls代码
urls:
    # 参数 name参数 : 给路由字符串加了个别名。name='hello_name'叫反向解析,可以得到路由地址
    path('name_test', name_test, name='hello_name'),

点击 views代码
views:
def name_test(request):
    # 接收到的不是helloname,而是当前路由地址
    return HttpResponse('name_test的路由是:{}'.format(reverse('hello_name')))

好比,我问你A借东西,A没有。然后A问B借,之后A借到了,再给我。


但是,具体怎么使用呢?用到再说。

posted @ 2022-03-27 10:34  ICE-CREAMMM  阅读(263)  评论(0编辑  收藏  举报