具有两个参数,arg()和namespace()
arg¶
arg是一个元组,不写app_name就会报django.core.exceptions.ImproperlyConfigured:xxx
arg[0]:'应用名.urls'
arg[1]:'应用名'
namespace¶
命名空间 ( 由于name没有作用域,Django在反解URL时,会在项目全局顺序搜索,当查找到第一个name指定URL时,立即返回 我们在开发项目时,会经常使用name属性反解出URL,当不小心在不同的app的urls中定义相同的name时,可能会导致URL反解错误,为了避免这种事情发生,引入了命名空间。)
项目.urls
urlpatterns = [ path('admin/', admin.site.urls), # include(arg,namespace=None) arg是一个元组 arg=(,) path('books/', include(('books.urls', 'books'), namespace='books')) # URLResolver对象 ]
def include(arg, namespace=None): app_name = None if isinstance(arg, tuple):