代码中URL
出现位置
- 模板【HTML中】
- < a>超链接中
- < form >表单中
- 视图函数中
302跳转 HttpResponseRedirect(‘url’)
书写规范
- 绝对地址 hhttp://127.0.0.1:8000/page/1/
- 相对地址
- ‘/page/1’ - '/'开头的相对地址,浏览器会根据地址栏协议,ip,端口,加这个地址访问
例如当前为:http://127.0.0.1:8000/page/3 会访问http://127.0.0.1:8000/page.1 - ‘page/1’ -没有’/'开头的相对地址,浏览器会根据当前url的最后一个/加上相对地址访问
例如当前是:http://127.0.0.1:8000/page/3 会访问http://127.0.0.1:8000/page/page/1 就会访问错误或访问不到
- ‘/page/1’ - '/'开头的相对地址,浏览器会根据地址栏协议,ip,端口,加这个地址访问
url反向解析
URL反向解析是指在视图或模板中,用path定义的名称来动态查找或计算出相应的路由
path(route,views,name=‘别名’)
根据path中的‘name’关键字传参URL一个唯一确定的名字,在模板或视图中,可以通过这个名字反向推断出此URL信息
模板中
{% url '别名' %}
{% url '别名' '参数值1' '参数值2' %}
ex:
{% url 'pagen' '400' %}
{% url 'peison' age='18' name='zxh' %}
视图中
from django.urls import reverse
reverse('别名',args=[],kwargs={})
ex:
print(reverse('pagen', args=[300]))
print(reverse('person', kwargs = {'name':'zxh','age':18}))