随着功能的增加,路由层 urls.py
的 url
发生变化,就需要去更改对应的视图层 views.py
和模板层 .html
的 url
,非常麻烦,不便维护。
这时我们可以利用反向解析,当路由层 url
发生改变,在视图层和模板层动态反向解析出更改后的 url
,免去修改的操作。
反向解析一般用在模板中的超链接及视图中的重定向。
怎么使用呢,很简单,在 urls.py
中给路由起别名,name="路由别名"
。
path("login/", views.login, name="login")
在 views.py
中,从 django.urls
中引入 reverse
,利用 reverse("路由别名") 反向解析:
return redirect(reverse("login"))
在模板 templates
中的 HTML
文件中,利用 {% url "路由别名" %}
反向解析。
<form action="{% url 'login' %}" method="post">