盘点这 7 款 Python 开源框架的优缺点

盘点这 7 款 Python 开源框架的优缺点】学习任何一门开发语言都离不开框架 , 一个框架就好比是一个毛坯房 , 只需要我们装修就可以入住 。 如果没有框架我们就只能一砖一瓦的去盖楼房了 。 框架的种类很多 , 具体选择要根据实际的业务情况 。 下面就简单的介绍一下Python七款开源框架的优劣 。
Django
Django应该是最出名的Python框架 , GAE甚至Erlang都有框架受它影响 。 Django是走大而全的方向 , 它最出名的是其全自动化的管理后台:只需要使用起ORM , 做简单的对象定义 , 它就能自动生成数据库结构、以及全功能的管理后台 。
盘点这 7 款 Python 开源框架的优缺点
文章图片
优点:
开源框架 , 有完美的文档支持
解决方案众多 , 内部功能支持较多
优雅的URL , 完整的路由系统
自助式的后台管理
缺点:
系统紧耦合 , 想用喜欢的第三方库来代替是非常难的 , 即使打了一些补丁用上了也会觉得非常别扭 。
Django自带的ORM远不如SQLAlchemy强大 。
Template功能比较弱 , 不能插入Python代码 , 要写复杂一点的逻辑需要另外用Python实现Tag或Filter 。
Flask
Flask是一个用Python编写的轻量级Web应用框架 。 基于WerkzeugWSGI工具箱和Jinja2模板引擎 。 Flask也被称为“microframework” , 因为它使用简单的核心 , 用extension增加其他功能 。 Flask没有默认使用的数据库、窗体验证工具 。
盘点这 7 款 Python 开源框架的优缺点
文章图片
优点:
Flask比Django更灵活 , 用Flask来构建应用之前 , 选择组件的时候会给开发者带来更多的灵活性 , 可能有的应用场景不适合使用一个标准的ORM(Object-RelationalMapping对象关联映射) , 或者需要与不同的工作流和模板系统交互 。
缺点:
Flask只是一个内核 , 默认依赖于两个外部库:Jinja2模板引擎和WerkzeugWSGI工具集 , 其他很多功能都是以扩展的形式进行嵌入使用 。
Scrapy
Scrapy是Python开发的一个快速、高层次的屏幕抓取和web抓取框架 , 用于抓取web站点并从页面中提取结构化的数据 。 Scrapy用途广泛 , 可以用于数据挖掘、监测和自动化测试 。
盘点这 7 款 Python 开源框架的优缺点
文章图片
优点:
Scrapy是一个功能非常强大的爬虫框架 , 它不仅能便捷地构建request , 还有强大的selector能够方便地解析response , 然而它最受欢迎的还是它的性能 , 既抓取和解析的速度 , 它的downloader是多线程的 , request是异步调度和处理的 。 这两点使它的爬取速度非常之快 。
另外还有内置的logging , exception , shell等模块 , 为爬取工作带来了很多便利 。
缺点:
scrapy是封装起来的框架 , 他包含了下载器 , 解析器 , 日志及异常处理 , 基于多线程 , twisted的方式处理 , 对于固定单个网站的爬取开发 , 有优势 , 但是对于多网站爬取100个网站 , 并发及分布式处理方面 , 不够灵活 , 不便调整与括展 。
Tornado
Tornado是一种Web服务器软件的开源版本 。 Tornado和现在的主流Web服务器框架(包括大多数Python的框架)有着明显的区别:它是非阻塞式服务器 , 而且速度相当快 。
盘点这 7 款 Python 开源框架的优缺点
文章图片
优点:
Tornado擅长为需要严密控制异步网络细节的应用程序提供基础架构 。 例如 , Tornado不仅提供内置的异步HTTP服务器 , 还提供异步HTTP客户端 。 因此 , Tornado非常适合构建应用程序 , 例如Webscraper或bot , 它们并行查询其他站点并对返回的数据进行操作 。