django中的路由分发include

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),
]

 

 

posted @ 2020-10-18 16:39  Deaseyy  阅读(407)  评论(0编辑  收藏  举报