django-应用命名空间和实例命名空间---include函数详解

应用(app)命名空间和实例命名空间

一个app, 
可以创建多个实例,
可以使用多个url映射一个app
所以会产生一个问题, 如果使用应用命名空间, 就会发生混淆
为了避免这个问题, 可以使用实例命名空间
实例命名空间: 只要在'include'函数中传递以个'namespace'变量即可

django-应用命名空间和实例命名空间---include函数详解_第1张图片

有点晕的地方, 下次看到再说

request.resolver_match.namespace

include函数的用法

  1. 常用的用法
1.include(module, namespace=None)
	module: 子urls的路径, 字符串形式
	namespace: 实例命名空间
namespace注意点:
	如果指定实例命名空间, 那么前提必须要先指定应用命名空间
	也就是在 app 中的 urls.py 文件中 添加  app_name='名称'

2.include参数为元组

include((pattern,app_namespace), namespace=None)
	pattern: 子urls.py相对路径 app名称. 写法:urls.py
	app_namespace: 应用命名空间, 如果这样写,app就可以不用写
	app_name这个变量了
	
	namespace=None: 这个参数可以不写,让它默认就好

3.include参数为列表

include(pattern_list): 这个列表装的是'path或者re_path函数'
path('路由/', 视图),
path(路由/, 视图_list)

django-应用命名空间和实例命名空间---include函数详解_第2张图片

你可能感兴趣的:(python_django)