我想知道,在使用网址(from django.conf.urls import url)
时,name = 'insert-something'
是什么意思?例如,在创建用于注册新用户的网址时:
url(r'^register', views.register, name='register')
name ='register'在这里是什么意思?为什么有必要?
谢谢!
答案 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
中的网址格式。