三大Web框架:Django、Flask、Tornado

 可以把web框架分为三部分:
  A:socket服务端
  B:路由与视图函数对应关系(路由匹配)
  C:模板渲染(模板语法)
 
 
 
Django 
优点: 大而全,自带功能特别多,类似航空母舰
缺点: 在开发一个简单网站时,显得过于笨重
    A部分用的别人的: wsgiref模块
    B部分用自己的
    C部分用自己的(不是jinja2模块,但也好用)
 
flask
优点: 小而精.自带功能很少,但可以用的第三方模块特别多
缺点: 依赖第三方模块.(由于两者版本更新不匹配,存在兼容性问题)
    A部分用的别人的: werkzeug(内部还是wsgiref模块)
    B部分用自己的
    C用的别人写的(用的jinja2模板语法)
 
tornado
优点: 异步非阻塞,支持高并发(速度快: 甚至可以开发游戏服务器)
缺点: 暂时不知道
    A B C 都是自己写的

 

 

 

1) Django:

Django 是一个功能强大且全面的高级 Web 框架,它提供了许多内置的功能和工具,适用于构建复杂的 Web 应用程序。以下是选择 Django 的理由:

  • 快速开发:Django 提供了许多内置功能和工具,如 ORM(对象关系映射)、表单处理、认证机制等,可以快速构建功能完善的应用程序。
  • 安全性:Django 对安全性有着很高的关注,提供了内置的安全机制和防护措施,例如 CSRF(跨站请求伪造)保护、XSS(跨站脚本攻击)防护等。
  • 强大的管理员界面:Django 自带了一个功能强大的管理员界面,可以轻松管理和维护后台数据。
  • 社区支持:Django 拥有庞大的社区和活跃的开发者群体,可以轻松找到解决问题的文档、教程和插件。

 

2) Flask:

Flask 是一个轻量级的 Web 框架,它注重简洁、灵活和可扩展性。以下是选择 Flask 的理由:

  • 简洁灵活:Flask 框架相对较小,核心功能简单易懂,可以按照自己的需求进行灵活的定制和扩展。
  • 易上手:Flask 的学习曲线较为平缓,对于有 Python 开发经验的人来说,上手相对容易。
  • 较低的资源消耗:Flask 框架相对较轻量,对于并发量较小的项目来说,可以减少资源消耗。

Flask 提供的功能相对较少,需要自行选择和集成一些插件来满足项目的需求。对于简单的项目和小规模的并发量,Flask 是一个不错的选择。

 

3) Tornado:

Tornado 是一个基于 Python 的高性能 Web 框架,特点是非阻塞式的 I/O,适用于高并发的场景。以下是选择 Tornado 的理由:

  • 高性能:Tornado 使用了非阻塞的 I/O 模型和事件循环机制,可以处理大量并发连接,适用于高并发的场景。
  • 异步支持:Tornado 内置了异步支持,可以处理异步请求和长连接。
  • 可扩展性:Tornado 的设计使得它可以轻松地扩展为分布式、异步任务处理等复杂场景。

 

4) 实际案例:

  1.  对于只有10左右并发量的项目来说,Django 的一些高级功能可能会显得过于庞大和复杂,有些功能可能不会被充分利用; Tornado 的高性能和异步特性可能不会被充分利用,使用 Tornado 可能会增加项目的复杂性和学习成本
posted @ 2024-01-10 14:54  tslam  阅读(112)  评论(0编辑  收藏  举报