文章目录
1. 传统经典的MVC模式(Model-View-Controller)
-
模型:数据的构成和其中的逻辑关系,体现在数据表各个字段或者多表之间的关系
-
视图:用于呈现数据,实现用户交互
-
控制器:处理用户交互内容,控制器负责从视图中获取数据,控制用户输入,并向模型更新数据
-
实现了开发过程中的数据、业务逻辑和用户界面的分离
2. Django中遵循MVC并对应自己的MVT模式(Model-View-Template)
- 模型:同MVC中模型
- 视图:更像MVC中的控制器,负责根据用户请求从数据库读取数据、指定向用户展示数据的方式(网页或json数据), 还指定渲染模板并处理用户提交的数据
- 模板:同MVC中的视图,用来呈现数据和用户界面
3. Django处理请求过程
- Django MVT设计模式中最重要的是视图(view), 因为它同时与模型(model)和模板(templates)进行交互。当用户发来一个请求(request)时,Django会对请求头信息进行解析,解析出用户需要访问的url地址,然后根据路由urls.py中的定义的对应关系把请求转发到相应的视图处理。视图会从数据库读取需要的数据,指定渲染模板,最后返回响应数据。这个过程如下图所示:
4. Django开发流程
1. 新建app并注册
- 使用python manage.py startapp tasks的命令新建一个名为tasks的app,将它加入到settings.py中的INSTALLED_APP中,然后把tasks应用的urls添加到到项目的urls中
2. 创建模型(M)
- 编辑tasks目录下models.py创建Task模型(类), Task模型包含里名称name和状态status两个字段。
- 当你使用python manage.py makemigrations和python manage.py migrate命令时,Django会自动为你在数据库创建数据表(默认使用的数据库是免费的sqlite)
3. 编写视图并配置路由URL(V)
- 编辑视图views.py,并新增一个视图函数
- 该视图函数从数据库读取了Task模型对象数据,返回指定的渲染模板并向模板传递了数据
- 编辑或创建tasks/urls.py,为写好的视图函数配置路由
- 用户访问该路由时,Django将调用视图函数。这个视图函数将同时与数据库和模板进行交互
4. 编辑模板(T)
- 创建html文件用于展示视图传来的数据
- Django提供了自己的模板语言,包括常见的判断和循环,专门用来渲染模板