Django-url中“name”的含义是什么?

时间:2017-10-13 12:24:04

标签: python django

我想知道,在使用网址(from django.conf.urls import url)时,name = 'insert-something'是什么意思?例如,在创建用于注册新用户的网址时:

url(r'^register', views.register, name='register')

name ='register'在这里是什么意思?为什么有必要?

谢谢!

1 个答案:

答案 0 :(得分:5)

该名称用于从Django / Python代码中访问该URL。例如,您在urls.py

中有此功能
url(r'^main/', views.main, name='main')

现在,每当您想要重定向到主页面时,您都可以说

redirect('app.main')

其中app是main所在的django-app的名称。或者您甚至可以将它用于html模板中的链接,例如

<a href="{% url 'app.main' %}">Go to main</a>

这会将您链接到www.example.com/main。你当然可以做到

redirect('http://www.example.com/main')

<a href="http://www.example.com/main">Go to main</a>
分别是

,但是例如,您想要更改域或main/路由。如果您的项目中的所有网址都是硬编码的,那么您必须在每个地方更改它。但是,如果您使用了网址name属性,则只需更改urls.py中的网址格式。