2-Django、Flask和Tornado三大主流框架对比

这篇具有很好参考价值的文章主要介绍了2-Django、Flask和Tornado三大主流框架对比。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

在Python的web开发框架中,目前使用量最高的几个是DjangoFlaskTornado, 经常会有人拿这几个对比,相信大家的初步印象应该是 Django大而全、Flask小而精、Tornado性能高。

了解常用框架

Django

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

  • 优点

    • Django上手也比较容易,开发文档详细、完善,相关资料丰富
    • Django的自带ORM非常优秀,综合评价略高于SQLAlchemy
    • Django自带的模板引擎简单好用,但其强大程度和综合评价略低于Jinja
    • Django目前支持Jinja等非官方模板引擎
    • Django自带的数据库管理app好评如潮
    • Django非常适合企业级网站的开发:快速、靠谱、稳定
    • Django成熟、稳定、完善,但相比于FlaskDjango的整体生态相对封闭
    • DjangoPython web框架的先驱,用户多,第三方库最丰富
  • 缺点

    • Django太重了,除了web框架,自带ORM和模板引擎,灵活和自由度不够高
    • Django能开发小应用,但总会有“杀鸡焉用牛刀”的感觉
    • Django自带ORM也使Django与关系型数据库耦合度过高,如果想使用MongoDBNoSQL数据,需要选取合适的第三方库,且总感觉Django+SQL才是天生一对的搭配,Django+NoSQL砍掉了Django的半壁江山
Flask

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

  • 优点
    • Flask确实很“轻”,不愧是Micro Framework,从Django转向Flask的开发者一定会如此感慨,除非二者均为深入使用过
    • Flask自由、灵活,可扩展性强,第三方库的选择面广,开发时可以结合自己最喜欢用的轮子,也能结合最流行最强大的Python
    • 入门简单,即便没有多少web开发经验,也能很快做出网站
    • 非常适用于小型网站
    • 非常适用于开发web服务的API
    • 开发大型网站无压力,但代码架构需要自己设计,开发成本取决于开发者的能力和经验
    • 各方面性能均等于或优于Django
    • Django自带的或第三方的好评如潮的功能,Flask上总会找到与之类似第三方库
    • Flask灵活开发,Python高手基本都会喜欢Flask,但对Django却可能褒贬不一
    • Flask与关系型数据库的配合使用不弱于Django,而其与NoSQL数据库的配合远远优于Django
    • FlaskDjango更加Pythonic,与Pythonphilosophy更加吻合
  • 缺点
    • 对于大型网站开发,需要设计路由映射的规则,否则导致代码混乱
Torando

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

  • 优点

    • 少而精(轻量级框架)
    • 注重性能优越,速度快
    • 解决高并发(请求处理是基于回调的非阻塞调用)
    • 异步非阻塞
    • websockets 长连接
    • 内嵌了HTTP服务器
    • 单线程的异步网络程序,默认启动时根据CPU数量运行多个实例;利用CPU多核的优势
    • 自定义模块
  • 缺点

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

2. Tornado VS Django VS Flask

Tornado性能比DjangoFlask高很多

  • 底层io处理机制:

Tornadogeventasyncioaiohttp:自带异步特性,底层使用的是事件循环+协程NodejsGo语言都得益于协程轻松实现了高并发。因为Tornado内置了自己的HTTPServer, 运行和部署它与其他Python web框架不 太一样

DjangoFlask: 传统的模型,同步框架,阻塞io模型。api写同步代码,使用celery /apscheduler处理异步任务。python 传统的这种 wsgi 模型,主要是为了方便框架开发者只需要专注框架层面,而非 http 处理层面。但这样却增加了服务部署的复杂度,需要同时部署和配置 http server wsgi server ,如果想支持异步还要部署 worker

  • 性能:

最基本的 json 的序列化:DjangoFlask 占优

处理远程 http 请求的能力:Tornado 占绝对优势

数据库与模板处理性能:TornadoFlask 旗鼓相当,Django 饱受诟病的地方就是 Django ORM 确实很慢,Django 的开发效率与维护非常棒,然而 Django ORM 深度绑定了该框架,如果你需要把 Django ORM 换成其它轮子,那么也意味着 Django 的诸多优秀特性将从此告别文章来源地址https://www.toymoban.com/news/detail-756099.html

到了这里,关于2-Django、Flask和Tornado三大主流框架对比的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python学习笔记_进阶篇(一)_浅析tornado web框架

    1、tornado概述 Tornado就是我们在 FriendFeed 的 Web 服务器及其常用工具的开源版本。Tornado 和现在的主流 Web 服务器框架(包括大多数 Python 的框架)有着明显的区别:它是非阻塞式服务器,而且速度相当快。得利于其 非阻塞的方式和对epoll的运用,Tornado 每秒可以处理数以千计的

    2024年02月12日
    浏览(33)
  • BUUCTF-MD5强弱比较-MD5()的万能密码-tornado框架注入-中文电码

    第六周 第三次 目录 学习到的知识 1.MD5强弱比较可以都可以使用数组绕过 2.基于MD5()的万能密码    ffifdyop WEB [BJDCTF2020]Easy MD5 ​编辑[护网杯 2018]easy_tornado Crypto 信息化时代的步伐 凯撒?替换?呵呵! Misc 神秘龙卷风 1.MD5强弱比较可以都可以使用数组绕过 2.基于MD5()的万能密码

    2023年04月12日
    浏览(45)
  • Flask vs. Django:选择适合你的Web开发框架【第134篇—Flask vs. Django】

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。【点击进入巨牛的人工智能学习网站】。 在选择一个适合你项目的Web开发框架时,常常会遇到 Flask 和 Django 这两个流行的选择。两者都有其优势和适用场景,本文将探讨它们的特点,

    2024年03月26日
    浏览(49)
  • 面试之 Python 框架 Flask、Django、DRF

    Django:大而全的框架。它的内部组件比较多,如 ORM、Admin、中间件、Form、ModelForm、Session、缓存、信号、CSRF等,功能也都很完善。 flask:微型框架,内部组件就比较少了,但是有很多第三方组件来扩展它,比如 wtform(与django的modelform类似,表单验证)、flask-sqlalchemy(操作数

    2024年02月05日
    浏览(40)
  • Python Web开发:Django与Flask框架

    Django和Flask都是Python中非常受欢迎的Web开发框架。虽然它们都是用于构建Web应用程序的工具,但它们在设计理念、使用方式和适用场景等方面存在一些差异。 Django Django是一个“大而全”的框架,遵循MVC设计模式。它内置了很多功能,如ORM(对象关系映射)、模板引擎、表单处

    2024年02月22日
    浏览(43)
  • 从性能、开发难度、推广使用等方面,对比一下django flask fastapi的优点和缺点

    当选择一个适合你的项目的Python Web框架时,你可能会考虑以下几个方面:性能、开发难度和推广程度。在这里,我们将比较Django、Flask和FastAPI这三个常用的框架,深入探讨它们的优点和缺点。 1. 性能:    - Django:Django是一个全功能的框架,它提供了许多内置的功能和扩展。

    2024年02月12日
    浏览(30)
  • Python Web框架:Django、Flask和FastAPI巅峰对决

    今天,我们将深入探讨Python Web框架的三巨头:Django、Flask和FastAPI。无论你是Python小白还是老司机,本文都会为你解惑,带你领略这三者的魅力。废话不多说,让我们开始这场终极对比! Django,这个强大的全能型框架被誉为“Web开发的瑞士军刀”,无愧是大型项目的不二之选

    2024年02月12日
    浏览(48)
  • 框架安全-CVE 漏洞复现&Django&Flask&Node.js&JQuery框架漏洞复现

    中间件及框架列表: IIS,Apache,Nginx,Tomcat,Docker,K8s,Weblogic,JBoos,WebSphere,Jenkins ,GlassFish,Jetty,Jira,Struts2,Laravel,Solr,Shiro,Thinkphp,Spring,Flask,jQuery 等 1、开发框架-PHP-Laravel-Thinkphp 2、开发框架-Javaweb-St2-Spring 3、开发框架-Python-django-Flask 4、开发框架-Javascript-Nod

    2024年02月08日
    浏览(42)
  • python--tornado服务

    一、前言     Tornado是一个基于非阻塞I/O的Web框架,具有可以处理大量并发连接,适用于高并发的场景的高性能,轻量级和异步支持的优点。     本篇主要展示了使用 tornado http post 和 get 服务 二、代码   tornado http post 和 get 服务 下面的client端向分别向2个服务发送get请求和

    2024年02月13日
    浏览(28)
  • 【websocket - Tornado】简易聊天应用

    项目测试的过程中需要自己搭建一个webscoket站点,确保此类服务接入后台系统后访问不受影响。python的服务框架常用的有Flask、Django、Tornado,每个框架的侧重点不同,导致使用的场景就会有所差异。 Flask轻量级,采用常规的同步编程方式,需要安装其他模块辅助,主要用于传

    2024年02月14日
    浏览(25)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包