应用
应用在Django项目中是一个独立的业务模块,可以包含在自己的路由,视图,模板,模型
创建应用
- 用manger.py中的子命令startapp创建应用文件夹
python manger.py startapp music - 在settings.py中的 INSTALLED_APPS列表中配置安装此应用
INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'music', 'bookstore', ]
分布式路由
Django中,主路由由配置文件(urls.py)可以不处理用户具体路由,主路由配置文件可以做请求的分发(分布式请求处理).具体的请求可以由各自的应用来进行处理
配置分布式路由
-
主路由中调用include函数
语法:include(‘app名字.url模块名’)
作用:用于将当前路由转到各个应用的路由配置文件的urlpatterns进行分布式处理 -
应用下配置urls.py
应用下手动创建urls.py内容结构同主路由完全相同# 以访问127.0.0.1:8000/music/index为例 # file:urls.py from django.contrib import admin from django.urls import path, re_path, include urlpatterns = [ path("admin/", admin.site.urls), path('music/', include('music.urls')), ] # file: music/urls.py from django.urls import path, re_path from . import views urlpatterns = [ path('index/', views.index_view), ]
应用下的模板
应用内部可以配置模板目录
- 应用下手动创建templates文件夹
- settings.py中开启应用模板功能
TEMPLATES配置项中的‘APP_DIRS’值为True即可
应用下templates和外层templates都存在时,Django的查找模板规则- 优先查找外层templates目录下的模板
- 按照INSTALLED_APPS配置下的应用顺序逐层查找
注意: 如果用相同的模板文件,可能会发生上面应用中的文件显示下下面应用视图中,产生顶替,解决方法:在应用模板文件夹中在建立一个应用同名文件夹,把模板放在应用同名文件夹中,在引用是模板前缀就不同了。