我想知道,当使用url(时from django.conf.urls import url),是什么name = 'insert-something'意思?例如,当制作一个用于注册新用户的url时:
url(r'^register', views.register, name='register')
Run Code Online (Sandbox Code Playgroud)
名称=“注册”在这里是什么意思?为什么有必要?
谢谢!
该名称用于从Django / Python代码访问该URL。例如,您在urls.py
url(r'^main/', views.main, name='main')
Run Code Online (Sandbox Code Playgroud)
现在,每次您要重定向到主页时,您都可以说
redirect('app.main')
Run Code Online (Sandbox Code Playgroud)
appmain所在的django-app的名称在哪里。或者甚至可以将其用于html模板中的链接,例如
<a href="{% url 'app.main' %}">Go to main</a>
Run Code Online (Sandbox Code Playgroud)
例如,这会将您链接到www.example.com/main。你当然可以
redirect('http://www.example.com/main')
Run Code Online (Sandbox Code Playgroud)
要么
<a href="http://www.example.com/main">Go to main</a>
Run Code Online (Sandbox Code Playgroud)
分别,但是例如您想更改域或main/路由。如果所有网址都将在您的项目中进行硬编码,那么您将不得不在每个位置进行更改。但是,如果您改用url name属性,则只需在中更改url模式urls.py。