七款“Python开源框架”的优缺点

一:DjangoDjango 应该是最出名的Python框架 , GAE甚至Erlang都有框架受它影响 。Django是走大而全的方向 , 它最出名的是其全自动化的管理后台:只需要使用起ORM , 做简单的对象定义 , 它就能自动生成数据库结构、以及全功能的管理后台 。

七款“Python开源框架”的优缺点

文章插图
 
  • 优点:
开源框架 , 有完美的文档支持
解决方案众多 , 内部功能支持较多
优雅的URL , 完整的路由系统
自助式的后台管理
  • 缺点:
系统紧耦合 , 想用喜欢的第三方库来代替是非常难的 , 即使打了一些补丁用上了也会觉得非常别扭 。
Django自带的ORM远不如SQLAlchemy强大 。
Template功能比较弱 , 不能插入Python代码 , 要写复杂一点的逻辑需要另外用Python实现 Tag或Filter 。
二:FlaskFlask是一个用Python编写的轻量级Web应用框架 。基于Werkzeug WSGI工具箱和Jinja2模板引擎 。Flask也被称为“microframework” , 因为它使用简单的核心 , 用extension增加其他功能 。Flask没有默认使用的数 据库、窗体验证工具 。
七款“Python开源框架”的优缺点

文章插图
 
  • 优点:
Flask比Django更灵活 , 用Flask来构建应用之前 , 选择组件的时候会给开发者带来更多的灵活性  , 可能有的应用场景不适合使用一个标准的ORM(Object-Relational MApping对象关联映射) , 或者需要与不同的工作流和模板系统交互 。
  • 缺点:
Flask只是一个内核 , 默认依赖于两个外部库: Jinja2 模板引擎和 Werkzeug WSGI 工具集 , 其他很多功能都是以扩展的形式进行嵌入使用 。
三:Scrapy
七款“Python开源框架”的优缺点

文章插图
 
Scrapy是Python开发的一个快速、高层次的屏幕抓取和web抓取框架 , 用于抓取web站点并从页面中提取结构化的数据 。Scrapy用途广泛 , 可以用于数据挖掘、监测和自动化测试 。
  • 优点:
Scrapy是一个功能非常强大的爬虫框架 , 它不仅能便捷地构建request , 还有强大的selector能够方便地解析response , 然而它最受欢迎的还是它的性能 , 既抓取和解析的速度 , 它的downloader是多线程的 , request是异步调度和处理的 。这两点使它的爬取速度非常之快 。另外还有内置的logging , exception , shell等模块 , 为爬取工作带来了很多便利 。
  • 缺点:
scrapy是封装起来的框架 , 他包含了下载器 , 解析器 , 日志及异常处理 , 基于多线程 ,  twisted的方式处理 , 对于固定单个网站的爬取开发 , 有优势 , 但是对于多网站爬取100个网站 , 并发及分布式处理方面 , 不够灵活 , 不便调整与括展 。
四:TornadoTornado是一种 Web 服务器软件的开源版本 。Tornado 和现在的主流 Web 服务器框架(包括大多数 Python 的框架)有着明显的区别:它是非阻塞式服务器 , 而且速度相当快 。
七款“Python开源框架”的优缺点

文章插图
 
  • 优点:
Tornado擅长为需要严密控制异步网络细节的应用程序提供基础架构 。例如 , Tornado不仅提供内置的异步HTTP服务器 , 还提供异步HTTP客户端 。因此 , Tornado非常适合构建应用程序 , 例如Web scraper或bot , 它们并行查询其他站点并对返回的数据进行操作 。
  • 缺点:
模板和数据库部分有很多第三方的模块可供选择 , 这样不利于封装为一个功能模块 。
 
五:Web2pyweb2py是一个为Python语言提供的全功能Web应用框架 , 旨在敏捷快速的开发Web应用 , 具有快速、安全以及可移植的数据库驱动的应用 , 兼容 google App Engine 。
七款“Python开源框架”的优缺点

文章插图
 
  • 优点:
Web2py最大的吸引力在于其内置的开发环境 。当设置Web2py实例时 , 将获得一个Web界面 , 实际上是一个在线Python应用程序编辑器 , 可以在其中配置应用程序的组件 。这通常意味着创建模型 , 视图和控制器 , 每个都通过Python模块或html模板进行描述 。


推荐阅读