1. 什么是B/S 和 C/S
Django是用于开发B/S架构的软件,软件主要分为B/S和C/S架构:
- B/S:浏览器/服务器,后期更新主要更新服务器——百度浏览器、淘宝网页版
- C/S:客户端/服务器,后期更新主要更新客户端——QQ手机版、王者荣耀
2.什么是MVC
MVC是模型(model)——视图(view)——控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑集中到一个部件里,在改进和个性化定制界面以及用户交互的同时,不需要重新编写业务逻辑
- M:管理应用程序的状态(存储数据库中),并约束改变状态的行为
- V:负责把数据格式化后呈现给用户
- C:接收外部用户的操作,根据操作访问模型获取数据,并调用“视图”显示这些数据。
控制器是将模型和视图分离,为二者之间的纽带
3.什么是MTV
Django也是一个MVC框架,但是在Django中,控制器接收用户输入的部分由框架自行处理。
MVC是模型(model)——模板(Template)——视图(view)的缩写
- M:数据存储层。处理与数据相关的所有事务:如何存取、如何验证有效性、包含哪些行为以及数据之间的关系等
- T:表现层,处理与表现相关的决定,如何在页面或者其他类型文档中进行显示
- V:业务逻辑层,存储模型以及调用恰当的模板的相关逻辑
视图时模型与模板之间的桥梁
4.什么是ORM
orm就是通过实例对象的语法,完成关系型数据库的操作技术,技术“对象——关系映射”的缩写
ORM把数据表映射当成对象
数据库的表(table)——>类(class)
记录(record,行数据)——>对象(object)
字段(field)——>对象的属性(attribute)
ORM模型的优点
- 数据模型都在同一个地方定义,容易更新维护,也利于重写代码
- ORM有现成的工具,很多功能都可以自动完成,比如数据清洗、预处理、事务
- 必须使用MVC框架,ORM就是天然的Model,使得代码更清晰
- 业务代码简单,代码少、语义好、更容易理解
- 不必编写性能不佳的SQL
ORM模型缺点
- ORM不是轻量级工具,需要学习和设置
- 对于复杂查询,ORM要么无法表达,要么性能不佳不如sql
- ORM抽象掉了数据库层,开发者无法了解底层的数据库操作,无法定制一些特殊sql