Django 路由系统

路由系统
1.URL模式以及要为该URL模式调用的视图函数之间的映射表,每个路由对应一个view中的函数,对于这个URL调用这段代码,对于那个URL调用那段代码

  参数说明:

  一个正则表达式字符串  一个可调用对象,通常为一个视图函数或一个指定视图函数路径的字符串

  可选的要传递给视图函数的默认参数(字典形式)

  一个可选的name参数  传递的参数始终是字符串

2. include 分级路由

  查找的顺序:请求 --> project/urls.py --> app/urls.py --> app/views.py

3. URL匹配规则的别名

  1. 起别名是为了,增加代码的健壮性,不将URL硬编码到代码中!

  2. 用法

    1. 在views.py中如何根据别名找到 url

    from django.urls import reverse

    url = reverse('别名')

    2. 在模板语言中如何根据别名找到url  {% url '别名' %}

  3. 带参数的url如何反向生成?

    1. 位置参数

      1. 在views.py中:

      reverse("别名", args=(参数1, 参数2, ...))

      2. 在模板语言中:

      {% url "别名" 参数1, 参数2... %}

    2. 关键字参数

      1. 在views.py中:reverse("别名", kwargs={"k1":参数1, ...})

      2. 在模板语言中:{% url "别名" 参数1, 参数2... %}

4. namespace(命名空间)

  # 使用include语法,将其他的urls.py 包含进来

  url(r'^app01/', include(app01_urls, namespace="app01"),),

  url(r'^app02/', include(app02_urls, namespace="app02")),

  1. 位置参数

    1. 在views.py中:reverse("命名空间:别名", args=(参数1, 参数2, ...))

    2. 在模板语言中:{% url "命名空间:别名" 参数1, 参数2... %}

  2. 关键字参数

    1. 在views.py中:reverse("命名空间:别名", kwargs={"k1":参数1, ...})

    2. 在模板语言中:{% url "命名空间:别名" 参数1, 参数2... %}

原文地址:https://www.cnblogs.com/tianyu529/p/9200868.html