Django中的路由及子应用

路由

1. 定义

路由表:url与后端视图函数的一个映射关系表

web应用调用后端服务:前端访问url获取页面 --> 后端调用指定函数func(a, b, ...)

 

2. 路由匹配规则

①urlpatterns自上而下开始匹配 

②一旦匹配成功,将调用path第二个参数所指定的视图函数,并且不会再向下匹配 

③若url匹配不成功,则页面返回404 

④路由信息一般以'/'结尾 

⑤在子应用下定义子路由,主路由中使用include('子应用名.urls')来加载子路由,若url第一部分匹配,则剩下部分会被拿到子路由中匹配。

1 urlpatterns = [
2     path('projects/', views.ProjectsInfo.as_view()),
3     path('projects/<int:pk>', views.ProjectsInfo.as_view()),
4 ]

 

3. 路由分发

在子路由中,将url和需要调用的视图函数之间进行映射,全局路由对各个应用进行绑定,利用include加载子路由,从而实现路由的分发,便于根据不同的应用来管理各自的url,减少代码维护成本

1 urlpatterns = [
2     path('apiDetail/', include('interfaces.urls')),
3 ]

 

子应用

1. 子应用的作用

· 实现业务功能模块的复用

· 将工程项目拆分为不同的子功能模块,以子应用的形式存在

· 各功能模块之间可以保持相对的独立

· 实现路由的分发,便于管理各模块的url,减少代码维护成本

 

2. 创建一个子应用

1)python manage.py startapp projects

2)注册

在全局配置文件settings中的INSTALLED_APPS列表,添加子应用

INSTALLED_APPS = [
    'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
   # 添加子应用名
'projects',
'interfaces',
]

3)在views.py中创建视图函数

4)在urls.py中配置路由信息

 

子路由表:将url和需要调用的视图函数之间进行映射

全局路由表:使用include加载子路由

 

3. 目录结构

migrations 存放数据库迁移脚本历史记录等信息

admin.py:admin后台站点的相关配置

apps.py:app label的相关配置

models.py:存放数据库模型相关信息

test.py:对当前子应用进行自测,单元测试

views.py:子应用视图

 

posted @ 2020-07-12 19:16  二鬼  阅读(576)  评论(0编辑  收藏  举报