1、应用
1.1、什么是应用
应用在Django项目中是一个独立的业务模块,可以包含自己的路由,视图,模板,模型;
例如一个资讯类的大站,一个资讯类可以看作是一个应用,
作用:
- 用于解耦视图层,避免所有资讯类频道共用一个视图层,导致版本控制不容易操作;
- 完全独立的业务模块:各个功能模块之间完全独立(高内聚)
1.2、创建应用
步骤1:创建应用文件夹
用 manage.py 中的子命令 startapp 创建应用文件夹
python manage.py startapp 应用名字
步骤2:配置安装应用
在settings.py 配置文件中的 NSTALLED_APPS 列表中配置安装此应用
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'应用名字', # 我的博客模块 (将创建好的APP加入公有配置中)
]
1.3、应用文件夹结构
migrations文件夹:
- 模型层的同步迁移文件
init.py文件:
- python包的初始化文件
admin.py文件:
- 管理后台相关:可以让非技术人员,在后台管理页面对项目的数据进行增删改查;
apps.py文件:
- 应用下的相关配置
models.py文件:
- 模型层处理
tests.py文件:
- 用于测试的模块
views.py文件:
- 视图层 、视图函数
2、分布式路由
2.1、分布式路由介绍
分布式路由(路由分发)图例:
- Django中,主路由配置文件(urls.py)可以不处理用户具体路由;
- 主路由配置文件可以做请求的分发(分布式请求处理);
- 具体的请求可以由各自的应用来进行处理(负责具体绑定路由和视图函数)
2.2、配置分布式路由
以 http://127.0.0.1:8000/user/test01 为请求例子,配置分布式路由,配置步骤如下:
步骤1:主路由中调用include函数
语法:
include('app名字.url模块名字')
作用:
用于将当前路由转到各个应用的路由配置文件的 urlpatterns 进行分布式处理
from django.contrib import admin
from django.urls import path,include # 主路由里 引入了 include函数
from user import views
urlpatterns = [
path('admin/', admin.site.urls),
path('test', views.test),
path('user/', include('user.urls')),
# 用include()替换掉以前视图的位置即可;
#path('路径/', include('app名字.url模块名字')),
]
步骤2:在应用下配置url.py文件
在应用文件夹下手动创建 urls.py 文件,内容结构同主路由完全一样
from django.contrib import admin
from django.urls import path
from . import views
urlpatterns = [
path('admin/', admin.site.urls),
path('test01', views.test01_view),
# http://127.0.0.1:8000/user/test01
]