day67
参考:
https://www.cnblogs.com/liwenzhou/articles/8271147.html#autoid-1-4-0
反向解析URL
本质上就是给url匹配模式起别名,然后用过别名拿到具体的URL路径
1. 怎么起别名?
在url匹配模式中,定义name="别名"
2. 如何使用?
1. 在模板语言里面使用:
{% url "别名" %} --> 得到具体的URL路径
2. 在视图中如何使用:
from django.urls import reverse
reverse("别名") --> 得到具体的URL路径
3. 如何传参数?
1. 模板语言中:
{% url "别名" 2018 "nb" %}
2. 视图函数中
传位置参数:
reverse("别名", args=(2018, "nb"))
传关键字参数:
reverse("别名" kwargs={"year": 2018, "title": "nb"})
4. namespace
为了防止不同的app下面的url匹配模式有重复的别名
反向解析URL
视图函数中
无参数
有参数
reverse("别名" kwargs={"year": 2018, "title": "nb"})
模板语言中
{% url "别名" 2018 "nb" %}
命名空间模式
即使不同的APP使用相同的URL名称,URL的命名空间模式也可以让你唯一反转命名的URL。
参考:https://www.cnblogs.com/liwenzhou/articles/8271147.html#autoid-1-5-0