• Django框架,Flask框架和Tornado框架各有什么优缺点


    Django:Python 界最全能的 web 开发框架,battery-include 各种功能完备,可维护性和开发速度一级棒。常有人说 Django 慢,其实主要慢在 Django ORM 与数据库的交互上,所以是否选用 Django,取决于项目对数据库交互的要求以及各种优化。而对于 Django 的同步特性导致吞吐量小的问题,其实可以通过 Celery 等解决,倒不是一个根本问题。Django 的项目代表:Instagram,Guardian。
    Tornado:天生异步,性能强悍是 Tornado 的名片,然而 Tornado 相比 Django 是较为原始的框架,诸多内容需要自己去处理。当然,随着项目越来越大,框架能够提供的功能占比越来越小,更多的内容需要团队自己去实现,而大项目往往需要性能的保证,这时候 Tornado 就是比较好的选择。Tornado项目代表:知乎。
    Flask:微框架的典范,号称 Python 代码写得最好的项目之一。Flask 的灵活性,也是双刃剑:能用好 Flask 的,可以做成 Pinterest,用不好就是灾难(显然对任何框架都是这样)。Flask 虽然是微框架,但是也可以做成规模化的 Flask。加上 Flask 可以自由选择自己的数据库交互组件(通常是 Flask-SQLAlchemy),而且加上 celery +redis 等异步特性以后,Flask 的性能相对 Tornado 也不逞多让,也许Flask 的灵活性可能是某些团队更需要的。

    一、Django
    主要特点是大而全,集成了很多组件,例如: Models Admin Form 等等, 不管你用得到用不到,反正它全都有,属于全能型框架
    优点:
    大和全(重量级框架)
    自带orm,template,view
    需要的功能也可以去找第三方的app
    注重高效开发
    全自动化的管理后台(只需要使用起ORM,做简单的定义,就能自动生成数据库结构,全功能的管理后台)
    session功能
    缺点:
    template不怎么好用(来自自身的缺点)
    数据库用nosql不方便(来自自身的缺点)
    如果功能不多,容易臃肿

    二、Torando
    主要特点是原生异步非阻塞,在IO密集型应用和多任务处理上占据绝对性的优势,属于专注型框架
    优点:
    少而精(轻量级框架)
    注重性能优越,速度快
    解决高并发(请求处理是基于回调的非阻塞调用)
    异步非阻塞
    websockets 长连接
    内嵌了HTTP服务器
    单线程的异步网络程序,默认启动时根据CPU数量运行多个实例;利用CPU多核的优势
    自定义模块
    缺点:
    模板和数据库部分有很多第三方的模块可供选择,这样不利于封装为一个功能模块

    三、Flask
    主要特点小而轻,原生组件几乎为0, 三方提供的组件请参考Django 非常全面,属于短小精悍型框架
    优点:
    简单,Flask的路由以及路由函数由修饰器设定,开发人员不需要借助其他文件匹配;
    配置灵活,有多种方法配置,不同环境的配置也非常方便;环境部署简单,Flask运行不需要借助其他任何软件,只需要安装了Python的IDE,在命令行运行即可。只需要在Python中导入相应包即可满足所有需求;
    入门简单,通过官方指南便可以清楚的了解Flask的运行流程;
    低耦合,Flask可以兼容多种数据库、模板。
    缺点:
    对于大型网站开发,需要设计路由映射的规则,否则导致代码混乱

    本文来源于:
    奈学开发者社区,如有侵权请联系我删除

  • 相关阅读:
    超实用的 Nginx 极简教程,覆盖了常用场景(转)
    阿里云Redis开发规范(转)
    什么是 AQS ?
    缓存穿透、缓存并发、缓存失效之思路变迁(转)
    看不懂JDK8的流操作?5分钟带你入门(转)
    Redis 分布式锁的正确实现方式(转)
    urllib-Proxy
    基本urllib库
    Windows DOS 命令(持续更新...)
    java 位运算符
  • 原文地址:https://www.cnblogs.com/Jss-forever/p/13393035.html
Copyright © 2020-2023  润新知