一.多层路由
如果django里的app数量越来越多,那项目里的urls文件配置起来将会很麻烦,而且也不利于后续项目的改动和整理
所以看了杨老师的视频https://www.bilibili.com/video/av17267741后,记录一下关于多层路由的配置
url文件分为两类:
1.项目下的urls.py(和setting.py同级的)我们这里称为总路由
2.app下自己创建的urls.py,我们这里称为app路由
二.配置
场景:
我的用户登陆\退出 是两个url
*:8000/login
*:8000/logout
他们的view层都是在user app下的,所以我可以将这两个url从总路由中分离出来,配置到app路由中,这里可以将/login /logout 前面新增一个/auth 来作为总路由的usr app标识
我们想要的url就会变成
*:8000/auth/login
*:8000/auth/logout
总路由:
from django.conf.urls import include
urlpatterns = [ url(r'^admin/', admin.site.urls), url(r'^$', index, name='index'), url(r'auth/', include('superpigeons_apps.user.urls')) ]
我们需要inclue一个app下的urls(app下自己创建的urls.py)
app路由:
urlpatterns = [ url(r'login/', login, name='login'), url(r'logout/', logout, name='logout'), ]
总路由配置的superpigeons_apps.user.urls中,就可以将login/ logout/配置在这一层中,设置好name.在模板中直接引用{% url 'login' %}
即可达成我们想要的目标效果