Django | 应用与分布式路由

Django·Programming · 2022-04-16

什么是应用

应用在Django项目中是一个对立的业务模块,可以包含自己的路由、视图、模板、模型。例如某资讯类网站可以包含金融、体育、娱乐、时尚等多个板块的内容。

创建方法

  1. manage.py中的子命令startapp创建应用文件夹
  2. settings.pyINSTALLED_APP列表中配置此应用

分布式路由

Django中,主路由配置文件urls.py可以不处理用户具体路由,主路由配置文件可以做请求的分发(分布式请求处理),具体的请求可以由各自的应用来进行处理。

配置分布式路由

  1. 在主路由中调用函数include('app名字.url模块名')
    从而将当前路由转到各个应用的路由配置文件的urlpatterns进行分布式处理
  2. 在应用下配置urls.py
    在应用下手动创建urls.py文件,其内容结构与主路由完全相同

应用下的模板

在应用的内部,也可以配置模板目录,其步骤如下:

  1. 在应用文件夹下手动创建templates文件夹
  2. settings.py中开启应用模板功能,即将TEMPLATES配置项中的APP_DIRS配置为True即可

当应用下和外部templates都存在时,django查找模板规则如下:

  1. 优先查找外层templates目录下的模板
  2. INSTALLED_APP列表中的应用顺序逐层查找

要解决以上办法,可以在子APP中的templates文件夹中再创建子文件夹,然后修改views.py中render函数里的模板路径。