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命名空间。