Django urls.py,name参数有什么作用?

时间:2014-05-07 19:31:59

标签: python django django-urls

我正在探索我的朋友项目,当我查看urls.py文件时,我注意到了这一点:

    url(r'^apply/$', contact.as_view(), name='careers_contact'),

我刚刚了解了基于类的视图,除了最后一位name='careers_contact'之外,这对我来说都是有意义的。我似乎也无法在网上找到这个含义。

有人可以说明这是什么,这个名字在哪里生活,它的​​作用是什么?

2 个答案:

答案 0 :(得分:10)

url() name参数

“它是什么?它住在哪里?”

url()只是一个返回django.core.urlresolvers.RegexURLPattern对象的函数,因此传入name='careers_contact'参数为该对象设置name。在将url(...)放入URLconf之前,这些都不是真正相关的。

那么,如果我们需要视图的网址,我们现在可以通过将name传递到模板中的{% url 'careers_contact' %}或代码中的reverse('careers_contact')以及后端这些函数来获取它使用name映射回正确的网址。

为什么我们需要它?

我们可以反转Python路径来获取网址(例如reverse(blog.views.home)),那么使用name的重点是什么?

URL NamingNamespacing允许3件事:

(点击链接查看问题示例以及命名/命名空间如何解决问题)

答案 1 :(得分:3)

他们可能为URL添加名称空间的原因是他们可以执行反向命名空间URL。

例如,在某个模板中,您可能会看到类似的内容:

<a href="{% URL 'contact:careers_contact' %}"> Click me! </a>