Django框架:
主要特点是大而全,集成了很多组件,属于全能型框架
优:
-
Django走的大而全的方向,开发效率高。它的MTV框架,自带的ORM,admin后台管理,全自动化的管理后台(只需要使用起ORM,做简单的定义,就能自动生成数据库结构,全功能的管理后台),自带的sqlite数据库和开发测试用的服务器,给开发者提高了超高的开发效率。
-
重量级web框架,功能齐全,自带ORM和模板引擎,template,view,支持jinja等非官方模板引擎。
-
自带ORM使Django和关系型数据库耦合度高,要使用非关系型数据库,需要使用第三方库
-
自带数据库管理app,session功能
-
成熟,稳定,开发效率高,相对于Flask,Django的整体封闭性比较好,适合做企业级网站的开发。python web框架的先驱,第三方库丰富
缺点:
- template不怎么好用
- 数据库用nosql不方便
主要是用来搞快速开发的,他的亮点就是快速开发,节约成本,,如果要实现高并发的话,就要对django进行二次开发,
Django是高水准的Python编程语言驱动的一个开源模型.视图,控制器风格的Web应用程序框架,它起源于开源社区。使用这种架构,程序员可以方便、快捷地创建高品质、易维护、数据库驱动的应用程序。
Django具体性能:
Django是一个高级Python Web框架,它鼓励快速开发和干净、实用的设计。它由经验丰富的开发人员构建,解决了许多Web开发的麻烦,因此您可以专注于编写应用程序,而无需重新发明轮子。它是免费和开放源码的。
- 快得令人惊奇。Django的设计目的是帮助开发人员尽快从概念到完成应用程序。
- 满载。Django包含许多额外功能,可以用来处理常见的Web开发任务。Django负责用户身份验证、内容管理、站点地图、RSS订阅源和许多其他任务——开箱即用
- 令人放心的安全。Django重视安全性,帮助开发人员避免许多常见的安全错误。如SQL注入、跨站点脚本编写、跨站点请求伪造和点击劫持。它的用户身份验证系统提供了一种安全的方式来管理用户帐户和密码。
- 可扩展性极强。 网络上一些最繁忙的网站利用Django快速灵活的规模化能力。
- 难以置信的多功能。公司、组织和政府已经使用Django来构建各种各样的东西——从内容管理系统到社交网络再到科学计算平台。
参考:https://www.djangoproject.com/start/
Tornado框架:
主要特点是原生异步非阻塞,在IO密集型应用和多任务处理上占据绝对性的优势,属于专注型框架
- Tornado走的是少而精的方向,性能优越,速度快,它最出名的异步非阻塞的设计方式
- Tornado的两大核心模块:
iostream:对非阻塞的socket进行简单的封装 ioloop: 对I/O 多路复用的封装,它实现一个单例
- websockets 长连接
- 内嵌了HTTP服务器
- 单线程的异步网络程序,默认启动时根据CPU数量运行多个实例;利用CPU多核的优势
- 自定义模块
缺点:
- 模板和数据库部分有很多第三方的模块可供选择,这样不利于封装为一个功能模块
Tornado是一个Python web框架和异步网络库,最初在FriendFeed开发。通过使用无阻塞网络I/O,Tornado可以扩展到数万个开放连接,使其成为长轮询、WebSocket和其他需要与每个用户建立长时间连接的应用程序的理想选择。
Flask框架:
主要特点小而轻,原生组件几乎为0, 三方提供的组件请参考Django 非常全面,属于短小精悍型框架, 轻量级,主要是用来写接口的一个框架,实现前后端分离,提考开发效率。
- Flask 是轻量级的框架,自由,灵活,可扩展性强,其 WSGI 工具箱采用 Werkzeug ,模板引擎则使用 Jinja2 。Flask使用 BSD 授权。
- 适用于做小网站以及web服务的API,开发大型网站无压力,但架构需要自己设计
- 与关系型数据库的结合不弱于Django,而与非关系型数据库的结合远远优于Django
Flask也被称为 “microframework” ,因为它使用简单的核心,用 extension 增加其他功能。Flask没有默认使用的数据库、窗体验证工具。
对于初学者来说。先从Django学起,然后再学习Flask和Tornado。Django帮我们事先搭建了好多,上手会快一些。