突然资讯网
首页 >> 科技 >> 正文

Python WEB框架Django、Tornado、Flask分析比较

日期:2019-12-03 16:28:30 来源:互联网 编辑:小优 阅读人数:207

一、Django

主要特点是大而全,集成了很多组件,例如: Models Admin Form 等等, 不管你用得到用不到,反正它全都有,属于全能型框架

优点:

Django太重了,除了web框架,自带ORM和模板引擎,灵活和自由度不够高

Django能小应用,但总会有“杀鸡焉用牛刀”的感觉

Django的自带ORM非常优秀,综合评价略高于SQLAlchemy

Django自带的模板引擎简单好用,但其强大程度和综合评价略低于Jinja

Django自带ORM也使Django与关系型数据库耦合度过高,如果想使用MongoDB等NoSQL数据,需要选取合适的第三方库,且总感觉Django+SQL才是天生一对的搭配,Django+NoSQL砍掉了Django的半壁

Django目前支持Jinja等非模板引擎

Django自带的数据库app好评如潮

Django非常适合企业级网站的:快速、靠谱、稳定

Django成熟、稳定、完善,但相比于Flask,Django的整体生态相对封闭

Django是Python web框架的先驱,用户多,第三方库最丰富,最好的Python库,如果不能直接用到Django中,也一定能找到与之对应的移植

Django上手也比较容易,文档详细、完善,相关资料丰富

缺点:

template不怎么好用(来自自身的缺点)

数据库用nosql不方便(来自自身的缺点)

如果功能不多,容易臃肿

二、Torando

主要特点是原生异步非阻塞,在IO密集型应用和多任务处理上占据绝对性的优势,属于专注型框架

优点:

少而精(轻量级框架)

注重性能优越,速度快

解决高并发(请求处理是基于回调的非阻塞调用)

异步非阻塞

websockets 长连接

内嵌了HTTP

单线程的异步网络程序,默认启动时根据CPU数量运行多个实例;利用CPU多核的优势

自定义模块

缺点:

模板和数据库部分有很多第三方的模块可供选择,这样不利于封装为一个功能模块

三、Flask

主要特点小而轻,原生组件几乎为0, 三方提供的组件请参考Django 非常全面,属于短小精悍型框架

优点:

Flask确实很“轻”不愧是Micro Framework,从Django转向Flask的者一定会如此感慨,除非二者均为深入使用过

Flask自由、灵活,可扩展性强,第三方库的选择面广,时可以结合自己最喜欢用的轮子,也能结合最流行最强大的Python库

入门简单,即便没有多少web经验,也能很快做出网站

非常适用于小型网站

非常适用于web服务的API

大型网站无压力,但代码架构需要自己设计,成本取决于者的能力和经验

各方面性能均等于或优于Django

Django自带的或第三方的好评如潮的功能,Flask上总会找到与之类似第三方库

Flask灵活,Python高手基本都会喜欢Flask,但对Django却可能褒贬不一

Flask与关系型数据库的配合使用不弱于Django,而其与NoSQL数据库的配合远远优于Django

Flask比Django更加Pythonic,与Python的philosophy更加吻合

缺点:

对于大型网站,需要设计路由映射的规则,否则导致代码混乱

本文相关词条概念解析:

数据库

数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,它产生于距今五十年前,随着信息技术和市场的发展,特别是二十世纪九十年代以后,数据管理不再仅仅是存储和管理数据,而转变成用户所需要的各种数据管理的方式。数据库有很多种类型,从最简单的存储有各种数据的表格到能够进行海量数据存储的大型数据库系统都在各个方面得到了广泛的应用。在信息化社会,充分有效地管理和利用各类信息资源,是进行科学研究和决策管理的前提条件。数据库技术是管理信息系统、办公自动化系统、决策支持系统等各类信息系统的核心部分,是进行科学研究和决策管理的重要技术手段。

网友评论