应用,项目中的独立业务模块,可以保函自己的路由、视图、模板、模型。
一、创建应用
(一)创建应用文件夹
python manage.py startapp [应用名]
(二)settings配置
在settings.py的INSTALLED_APPS中注册
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
]
二、分布式路由
主路由文件不处理用户具体路由,做请求分发,具体的请求由子路由进行处理。
(一)主路由调用include函数
from django.urls import path, include
from . import views
urlpatterns = [
path('music/', include(music.urls))
(二)创建子路由
进入app文件见创建urls.py文件
from django.urls import path
from . import views
urlpatterns=[
path('index',views.index_view)
]
三、应用及分布式路由案例
主路由新增两个music、sport
from django.urls import path, include
from . import views
urlpatterns = [
path('admin/', admin.site.urls),
path('test_static', views.homepage),
path('music/', include('music.urls')),
path('sport/', include('sport.urls')),
]
创建两个APP后,在settings.py中注册
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'music',
'sport',
]
在music、sport文件夹中创建子路由文件urls.py
from django.urls import path
from . import views
urlpatterns = [
path('index', views.index_view)
]
完成sport/views.py视图层配置
from django.http import HttpResponse
# Create your views here.
def index_view(request):
return HttpResponse('这是体育频道')
四、应用下的模板
调用应用下的模板
- 应用下手动创建templates文件夹
- 在settings.py中开启引用模板功能,即主站settings.py的TEMPLATE配置中的’APP_DIRS’为True
应用层和外层模板文件夹同时存在是,先找外层模板,然后按照INSTALLED_APPS配置下的应用顺序逐层查找
可以通过在APP/TEMPLATES文件夹新建一个与APP同名的文件夹来区别,render视图改为"news/index.html"