django路由分发的三种方式
方式一:
from django.urls import re_path, include
urlpatterns = [
re_path(r'^web/', include('app01:urls')),
]
include的返回值:
return (urlconf_module, app_name, namespace)
方式二:
# include函数主要返回有三个元素的一个元组。
# app01/urls.py
urlpatterns = [
re_path(r'^index/', views.index),
re_path(r'^home/', views.index),
]
# 主urls配置文件
from django.urls import re_path
from app01 import urls
urlpatterns = [
re_path(r'^web/', (urls, app_name, namespace)), # 第一个参数是urls文件对象,通过此对象可以获取urls.patterns获取分发的路由。
]
# 在源码内部,读取路由时:
# 如果第一个参数有:urls.patterns属性,那么子路由就从该属性中获取
# 如果第一个参数无:urls.patterns属性,那么子路由就是第一个参数。
方式三:
urlpatterns = [
url(r'^web/', ([
url(r'^index/', views.index),
url(r'^home/', views.home),
], app_name, namespace)),
]