Django url 的反向解析

1、代码中 url 书写规范

  • 绝对地址:

    • https://…
  • 相对地址:

    • '/page/1' - '/' 开头的相对地址,浏览器会把当前地址栏例的 协议 、ip 和 端口 加上这个地址,作为最终访问地址
    • 'page/1' - 没有 '/'开头的相对地址,浏览器会根据当前 url 的最后一个 / 之前的内容加上该相对地址最为最终访问地址,例如:当前地址栏地址为http://127.0.0.0.1:8000/topic/detail ; 则该相对地址最终结果为 http://127.0.0.1:8000/topic/ + page/1

2、url 反向解析 – 实现动态解析 url

  • 定义:url 反向解析是指在视图或模板中,用 path 定义的名称来动态查找或计算出相应的路由
  • path 函数的语法:
    • path(route, views, name="别名")
    • path('page', views.page_view, name="page_url")
  • 根据 path 中的 'name=' 关键字传参给 url 确定了个唯一确定的名字,在模板或视图中,可以通过这个名字反向推断出此 url 信息
  • 模板中通过 url 标签实现地址的反向解析
    • {% url '别名' %}
    • {% url 'pagen' '400' %}
    • {% url '别名' 'value1' 'value2' %}
    • {% url ‘person' age='18' name='gxn' %}
  • 在视图函数中可调用 django 中的 reverse 方法进行反向解析