web后台框架
1. Django 、Flask、Tornado的对比
答案:
- Django走的是大而全的方向,开发效率高。它的MTV框架,自带的ORM,admin后台管理,自带的sqlite数据库和开发测试用的服务器,给开发者提高了超高的开发效率
- 重量级web框架,功能齐全,提供一站式解决的思路,能让开发者不用在选择上花费大量时间。
- 自带ORM(Object-Relational Mapping 对象关系映射)和模板引擎,支持jinja等非官方模板引擎。
- 自带ORM使Django和关系型数据库耦合度高,如果要使用非关系型数据库,需要使用第三方库
- 自带数据库管理app
- 成熟,稳定,开发效率高,相对于Flask,Django的整体封闭性比较好,适合做企业级网站的开发。
- python web框架的先驱,第三方库丰富
- Flask是轻量级的框架,自由,灵活,可扩展性很强,核心基于Werkzeug WSGI工具和jinja2模板引擎
- 轻量级web框架,默认依赖两个外部库:jinja2和Werkzeug WSGI工具
- 适用于做小型网站以及web服务的API,开发大型网站无压力,但架构需要自己设计
- 与关系型数据库的结合不弱于Django,而与非关系型数据库的结合远远优于Django
- Tornado走的是少而精的方向,性能优越。它最出名的是异步非阻塞的设计方式
- Tornado的两大核心模块:
- iostraem:对非阻塞式的socket进行简单的封装
- ioloop:对I/O多路复用的封装,它实现了一个单例
- Tornado的两大核心模块:
Django框架的优缺点
- 优点:
- 被官方定义为完美主义者框架,提供一站式的解决方案
- 从模板、视图,模型ORM、Session等等都分配好了
- 提供了admin自动后台管理,测试,表单等功能
- 缺点:
- 作为web框架太重了,很多不用的组件和应用也都之间在框架中安装了
- 能开发小应用,但总会有“杀鸡焉用牛刀”的感觉
- 框架中的组件之间耦合度过高,不易拆分使用(例如数据验证需要表单配合…)
Django 作为一个 Web 开发框架,它包括哪些基本组成部分:
- HTTP 请求处理与响应
- URL 映射-urls.py,
- 视图控制-views.py
- 模板系统-templates
- 数据库操作模型-models.py
Flask框架的优缺点
- Flask只提供了一些核心功能,非常简洁优雅.被称为python中的’微’框架
- 自由、灵活,可扩展性强.入门简单,
- 非常适用于开发web服务的API
- 使用BluePrint架构开发大型网站无压力
- 第三方库的选择面广,开发时可以结合自己最喜欢用的轮子,也能结合最流行最强大的Python库
2.简述MVC和MTV
答案:
-
MVC软件系统分为三个基本部分:模型(Model)、视图(View)和控制器(Controller),MVC的核心思想:程序解耦,让不同的代码块之间降低耦合,增强代码的可扩展和可移植性,实现向后兼容。
- Model:负责业务对象与数据库的映射(ORM),主要封装对数据库层的访问,对数据库中的数据进行增、删、改、查操作。
- View:负责与用户的交互,用于封装结果,生成页面展示的html内容。
- Control:接受用户的输入调用模型和视图完成用户的请求,用于接收请求,处理业务逻辑,与Model和View交互,返回结果。
-
Django框架的MTV设计模式借鉴了MVC框架的思想,三部分为:Model、Template和View
- Model(模型):负责业务对象与数据库的对象(ORM),与MVC中的M功能相同,负责和数据库交互,进行数据处理。
- Template(模版):负责如何把页面展示给用户,与MVC中的V功能相同,负责封装构造要返回的html。
- View(视图):负责业务逻辑,并在适当的时候调用Model和Template,与MVC中的C功能相同,接收请求,进行业务处理,返回应答。</