Deaseyy

django路由分发的本质:include

django进行路由分发可用以下方式:

方式一

from django.conf.urls import url,include
urlpatterns = [
    url(r\'^web/\',include(\'app01.urls\')),
]

 

 

通过分析源码,可以通过其它方式:

方式二

include函数主要返回三个元素的元组:urls,app_name,namespace

设置namespace必须先要设置app_name, 默认都为None

from django.conf.urls import url,include
from app01 import urls
urlpatterns = [
    # 第一个参数是urls文件对象,可通过urls.patterns获取分发的路由
    url(r\'^web/\', (urls, app_name, namespace)),
]
​
# 在源码内部,读取路由时:
如果第一个参数urls有 patterns属性,那么子路由就从该属性中去取
如没有,子路由就是第一个参数urls

 

 

方式三

from django.conf.urls import url
urlpatterns = [
    url(r\'^web/\',([
        url(r\'^index/\', views.index)
        url(r\'^home/\', views.home)
    ],app_name, namespace),
]

 

以后做路由分发可以直接这样写:

urlpatterns = [
    url(r\'^web/\',([
        url(r\'^index/\', views.index)
        url(r\'^home/\', views.home)
    ],None, None),
]

 

 

分类:

技术点:

相关文章:

  • 2022-02-18
  • 2022-01-06
  • 2021-08-12
  • 2022-01-22
  • 2022-01-26
  • 2021-08-07
  • 2022-12-23
  • 2022-02-23
猜你喜欢
  • 2022-12-23
  • 2022-02-09
  • 2021-10-15
  • 2021-10-23
  • 2022-03-03
相关资源
相似解决方案