include(module[, namespace=None, app_name=None ])
include(pattern_list)
include((pattern_list, app_namespace, instance_namespace))django
app_namespace即爲application namespace,instance_namespace即爲instance namespace app
django分爲application namespace和instance namespace 兩種spa
帶有命名空間的URL組成方式爲」admin:index」,以 : 爲分隔符,命名空間URL支持嵌套,例如:」foo:bar:whiz」io
解析命名空間URL過程:module
前提:假設有一個命名空間URL「myapp:index」被解析。渲染
1.django查找符合條件(此例中爲myapp)的application namespace,會返回一個符合條件的instance namespace列表命名空間
2.若是有 current application instance被定義,換句話說就是,用於渲染的模版中的Context或者是RequestContext中的current_app這個屬性被設置,則這個值就是current application instance,使用該instance命名
3.若是沒有 current application instance被定義,會查找一個default application instance,這個instance namespace的名字與application namespace的名稱同樣。模版
4.若是沒有default application instance,則會按照聲明次序,返回最後一個被聲明的instance namespaceindex
5.若是第一步沒有匹配條件的application namespace,django會直接去查找匹配的instance命名空間。