Django 初识
一、MVC框架和MTV框架
MVC(Model View Controller)是软件工程中的一种软件架构模式,它把软件系统分为三个基本部分:模型(Model)、视图(View)、控制器(Controller)。MVC具有耦合性低、重用性高、生命周期成本低等优点。其中,模型负责业务对象与数据库的对象(ORM),视图负责与用户的交互(页面),控制器(C)接受用户的输入调用模型和视图完成用户的请求。
二、Django的MTV框架
Django的MTV模式本质上与MVC模式没有什么差别,也是各组件之间为了保持松耦合关系,只是定义上有些许不同,Django的MTV分别代表:
Model(模型):负责业务对象与数据库的对象(ORM) ——– 相当于MVC中的M
Template(模版):负责如何把页面展示给用户 ——– 相当于MVC中的V
View(视图):负责业务逻辑,并在适当的时候调用Model和Template ——– 相当于MVC中的C
此外,Django还有一个url分发器,它的作用是将一个个URL的页面请求分发给不同的view处理,view再调用相应的Model和Template

MTV模式和MVC模式的比对
三、Django的使用
3.1 创建项目
创建一个名为 mysit
的 Django 项目:
- 进入 cmd 终端,切换到想要存放项目的目录
- 输入创建项目命令:django-admin startproject mysite
3.2 项目的目录结构

3.3 创建APP
对于一个项目而言,我们不可能把所有的功能函数都写在一个文件里面,我们需要根据不同的功能进行app的划分(相当于多分几个模块),比如对于一个学生管理的系统,我们可以把用户登录注册的功能放到一起写,把老师的相关操作的功能划分到一起,把学生的相关功能划分到一起等等,这就需要创建多个app了
3.3.1 创建app的命令
1 |
|
例如:
1 |
|
此时我们可以发现项目目录变成了

3.3.2 app注册
我们再创建完app后,必须要让django知道我们添加了新的app,所以要在 settings.py中对新创建的app进行注册

3.4 运行项目
运行项目的命令:
1 |
|
3.5 Django项目的配置文件
创建的django项目中的 settings.py 中存放着项目相关的一些配置信息,我们可以根据实际的需求进行修改
- ALLOWED_HOSTS 允许访问该项目的IP信息的相关设置(即设置可以访问的白名单)
1 |
|
- INSTALLED_APPS 用于注册创建的app
1 |
|
- MIDDLEWARE 用于管理django的中间件,如果我们自己编写了新的中间件,也需要在这边注册
1 |
|
- ROOT_URLCONF 规定寻找路由和视图映射的入口
1 |
|
- TEMPLATES 存放模板相关的操作
1 |
|
- DATABASES 数据库相关操作
1 |
|
- STATIC_URL 用于设置项目静态文件相关存储,它会给静态文件的存储路径起一个别名,当使用到静态文件时,引用的路径必须以别名开头。别名只是告知要开始查找应用静态文件,而并非是静态文件的实际存储位置
1 |
|
- STATICFILES_DIR 静态文件实际的存储位置,需要手动建立该变量
1 |
|
四、Django的生命周期

浏览器发送请求,django接收请求并进行相应的处理,最后将结果返回给浏览的这个过程如上图所示。
- 由wsgiref模块接收到浏览器的请求
- 在请求到达路由层(urls.py)之前会经过中间件,中间件会先对请求进行一个预处理
- 请求到达路由层,通过路由层找到对应的视图函数
- 视图函数根据请求进行处理,如果请求涉及到模板和数据库,视图函数会将对应的模板和数据库中的数据进行组合渲染,最后将结果返回
- 再最后的结果返回给wsgiref模块之前还是会先经过中间件,中间件会对返回结果进行进一步的处理
- 返回结果处理完后,返回给wsgiref模块
- wsgiref模块将最后的结果返回给浏览器,浏览器对结果进行解析和展示