最近接手一个Tornado项目代码,项目要在原有基础上做很大扩展,为了更好地吃透并扩展好这个项目,就对Tornado以及比较轻型的Bottle、Flask这些框架一一作了调研。其实若干年前做第一个PythonWeb项目的时候,也对很多框架作了横向调研,不过当时的调研比较表面,这次的调研对各框架的文档作了比较细致的通读。Django不在其列,是因为对Django比较熟悉,不需要调研,不过Django可能作为标杆来对以上三者作为评判

第一个:原先代码使用的框架Tornado,首先Tornado的定位:Tornado is a Python web framework and asynchronous networking library, originally developed at FriendFeed. By using non-blocking network I/O, Tornado can scale to tens of thousands of open connections, making it ideal for long polling, WebSockets, and other applications that require a long-lived connection to each user.,这个是官文档的原文,事实文档内容比例也说明其asynchronous networking library的内容比例还是很大的。这样下来其Web Framework的比例就相对很小了,于是其Library的特性导致它的Web框架玩法与其他框架比起来相对比较原始。再就是官方文档中的By using non-blocking network I/O, Tornado can scale to tens of thousands of open connections, making it ideal for long polling, WebSockets 这一句说明了Tornado真正的个性强项,一个异步Web库勉为其难做Web Framework和Django比起来真是太原始粗糙了。

第二个:Bottle,Tornado文档pdf是200来页,Bottle是100来页,flask是300多页,Bottle is amicroframework designed for prototyping and building small web applications and services.Bottle的特性对于它这个定位来说是足够了。

第三个:Flask,Flask号称微内核框架,他的文档中有一段对micro的解释,充分表明他的设计方向:“Micro” does not mean that your whole web application has to fit into a single python file (although it certainly can), nor does it mean that Flask is lacking in functionality. The “micro” in microframework means Flask aims to keep the core simple but extensible. Flask won’t make many decisions for you, such as what database to use. Those decisions that it does make, such as what templating engine to use, are easy to change. Everything else is up to you, so that Flask can be everything you need and nothing you don’t. 这种设计风格正好和Django截然反之,Django是All in one,在技术设施层所需要的工作和决策非常少,Flask却给开发者敞开了扩展的空间。

Tornado、Bottle以及Flask相关推荐

  1. bottle mysql,web开发框架的选择(bottle or flask)及为autumn增加多线程支持

    其实之前就有写过关于python web开发框架选择的文章,之前最终选择了bottle,并给出了bottle开发的物理设计,详见之前的文章:回归简单,向Django说再见.bottle做web开发的物 ...

  2. Web框架 Bottle 、Flask 、Tornado

    Bottle Flask Tornado Python的WEB框架 Bottle Bottle是一个快速.简洁.轻量级的基于WSIG的微型Web框架,此框架只由一个 .py 文件,除了Python的标 ...

  3. Tornado实现多线程、多进程HTTP服务

    2019独角兽企业重金招聘Python工程师标准>>> 背景 线上有一个相关百科的服务,返回一个query中提及的百科词条.该服务是用python实现的,以前通过thrift接口访问 ...

  4. 【Flask】Flask框架简介

    Flask框架简介 Flask是一个使用 Python 编写的轻量级 Web 应用框架.来源-百度百科 MVC框架对比 框架 概述 Flask 全能框架.学习成本较大 Django 微框架.易学习.J ...

  5. Flask部署和分发

    http://www.bjhee.com/flask-ad8.html 到目前为止,我们启动Flask应用都是通过"app.run()"方法,在开发环境中,这样固然可行,不过到了生 ...

  6. python flask框架是什么_Flask框架是什么?带你安装运行第一个Flask程序

    1 了解框架 Flask作为Web框架,它的作用主要是为了开发Web应用程序.那么我们首先来了解下Web应用程序.Web应用程序 (World Wide Web)诞生最初的目的,是为了利用互联网交流工 ...

  7. Flask开发服务器

    Flask开发服务器 WSGI服务器: Gunicorn Gevent :基于协程 Tornado uWSGI CherryPy Flask天然的在底层支持Gevent,性能极佳. Web服务器:Ng ...

  8. 自学Python第二十六天- Tornado 框架

    自学Python第二十六天- Tornado 框架 安装及基础引用 创建.配置.初始化应用及简单运行服务 创建应用 对 app 进行设置 另一种设置方法 一些其他的配置 关于调试模式 设置路由处理器 ...

  9. python后端学什么框架_献给正在学习python的你, 10个最受欢迎的Python开源框架

    很多小伙伴在学习wen的时候说,有没有几个常用的框架,好多小伙伴都只说对了其中几个,只有少部分是说正确的,想要了解更多,欢迎大家订阅微信公众号:Python从程序猿到程序员,或者加4913.08659 ...

最新文章

  1. 机器学习中的特征工程总结!
  2. 油猴脚本第一家,网页网盘链接实时判断+资源搜索网站导航,资源重度患者的福利...
  3. python 双边滤波与高斯滤波
  4. PAT甲级1089 Insert or Merge:[C++题解]插入排序、归并排序
  5. Python正则表达式之修改,分割,搜索和替换字符串(6)
  6. Linux 内核源代码的目录结构
  7. MySql:从任何主机授予根用户登录权限
  8. 【转】三五个人十来条枪 如何走出软件作坊成为开发正规军
  9. 计算机图形学在线作业,电子科大16秋《计算机图形学》在线作业3答案
  10. Architecture(5)电商APP组件化探索
  11. C++编译过程中没有找到MFC80UD.DLL,因此这个程序未能启动.重新安装应用程序可能会修复此问题? 的彻底解决...
  12. iOS 获取权限描述本地化
  13. RTX客户端插件开发 for Delphi XE6 (二)
  14. 开发系统所需的服务器,开发软件的服务器需要什么配置
  15. php unshift,PHP Ds\Vector unshift()用法及代码示例
  16. python程序猿_python程序员指南 pdf下载
  17. 即时通讯(IM)开源项目OpenIM每周迭代版本发布-音视频实时通话-v2.0.4
  18. MySQL高性能索引设计
  19. Android监听Home键
  20. 【实战讲解】使用 Linux alias 为命令设置别名,设置永久别名

热门文章

  1. python 视频剪裁,剪切,合并
  2. 14.关于原子性的相关介绍
  3. debian 9/ ubuntu 添加swap分区
  4. dev schedulercontrol 不显示周_CBA更新伤病报告:丁彦雨航仍需5周 阿联还要休养半年...
  5. SpringBoot开启异步方法
  6. android 点击连续拍照,android自定义相机、连续(自动)聚焦、点击(触摸)聚焦、变焦、拍照后自定义裁剪、旋转...
  7. android 组装xml,Android中组装xml文件内容
  8. Spring Security 源码分析:Spring Security 授权过程
  9. GOROOT、GOPATH
  10. andpods授权码订单号分享_不要再让你的接口裸奔了,Boot快速尝试OAuth2密码和授权码模式...