乐趣区

关于python:盘点这-7-款-Python-开源框架的优缺点

学习任何一门开发语言都离不开框架,一个框架就好比是一个毛坯房,只须要咱们装修就能够入住。如果没有框架咱们就只能一砖一瓦的去盖楼房了。框架的品种很多,具体抉择要依据理论的业务状况。上面就简略的介绍一下 Python 七款开源框架的优劣。

Django

Django 应该是最闻名的 Python 框架,GAE 甚至 Erlang 都有框架受它影响。Django 是走大而全的方向,它最闻名的是其全自动化的治理后盾:只须要应用起 ORM,做简略的对象定义,它就能主动生成数据库构造、以及全功能的治理后盾。

长处

  • 开源框架,有完满的文档反对
  • 解决方案泛滥,外部性能反对较多
  • 优雅的 URL,残缺的路由零碎
  • 自助式的后盾治理

毛病

  • 零碎紧耦合,想用喜爱的第三方库来代替是十分难的,即便打了一些补丁用上了也会感觉十分顺当。
  • Django 自带的 ORM 远不如 SQLAlchemy 弱小。
  • Template 性能比拟弱,不能插入 Python 代码,要写简单一点的逻辑须要另外用 Python 实现 Tag 或 Filter。

Flask

  • Flask 是一个用 Python 编写的轻量级 Web 利用框架。基于 Werkzeug WSGI 工具箱和 Jinja2 模板引擎。Flask 也被称为“microframework”,因为它应用简略的外围,用 extension 减少其余性能。Flask 没有默认应用的数 据库、窗体验证工具。

长处

  • Flask 比 Django 更灵便,用 Flask 来构建利用之前,抉择组件的时候会给开发者带来更多的灵活性,可能有的利用场景不适宜应用一个规范的 ORM(Object-Relational Mapping 对象关联映射),或者须要与不同的工作流和模板零碎交互。

毛病

Flask 只是一个内核,默认依赖于两个内部库:Jinja2 模板引擎和 Werkzeug WSGI 工具集,其余很多性能都是以扩大的模式进行嵌入应用。

Scrapy

Scrapy 是 Python 开发的一个疾速、高层次的屏幕抓取和 web 抓取框架,用于抓取 web 站点并从页面中提取结构化的数据。Scrapy 用处宽泛,能够用于数据挖掘、监测和自动化测试。

长处

Scrapy 是一个性能十分弱小的爬虫框架,它不仅能便捷地构建 request,还有弱小的 selector 可能不便地解析 response,然而它最受欢迎的还是它的性能,既抓取和解析的速度,它的 downloader 是多线程的,request 是异步调度和解决的。这两点使它的爬取速度十分之快。

另外还有内置的 logging,exception,shell 等模块,为爬取工作带来了很多便当。

毛病

scrapy 是封装起来的框架,他蕴含了下载器,解析器,日志及异样解决,基于多线程,twisted 的形式解决,对于固定单个网站的爬取开发,有劣势,然而对于多网站爬取 100 个网站,并发及分布式解决方面,不够灵便,不便调整与括展。

Tornado

Tornado 是一种 Web 服务器软件的开源版本。Tornado 和当初的支流 Web 服务器框架(包含大多数 Python 的框架)有着显著的区别:它是非阻塞式服务器,而且速度相当快。

长处

Tornado 善于为须要严密控制异步网络细节的应用程序提供基础架构。例如,Tornado 不仅提供内置的异步 HTTP 服务器,还提供异步 HTTP 客户端。因而,Tornado 非常适合构建应用程序,例如 Web scraper 或 bot,它们并行查问其余站点并对返回的数据进行操作。

毛病

模板和数据库局部有很多第三方的模块可供选择,这样不利于封装为一个功能模块。

Web2py

web2py 是一个为 Python 语言提供的全功能 Web 利用框架,旨在麻利疾速的开发 Web 利用,具备疾速、平安以及可移植的数据库驱动的利用,兼容 Google App Engine。

长处

Web2py 最大的吸引力在于其内置的开发环境。当设置 Web2py 实例时,将取得一个 Web 界面,实际上是一个在线 Python 应用程序编辑器,能够在其中配置应用程序的组件。这通常意味着创立模型,视图和控制器,每个都通过 Python 模块或 HTML 模板进行形容。

毛病

Web2py 的一个重要限度是它仅与 Python 2.x 兼容。首先这意味着 Web2py 无奈应用 Python 3 的异步语法。如果你依赖于 Python3 独有的内部库,那么你就不背运了。然而,正在发展使 Web2py Python3 兼容的工作,并且在撰写本文时它已靠近实现。

Weppy

Weppy 感觉就像 Flask 的简洁格调和 Django 的完整性之间的两头标记。尽管开发 Weppy 应用程序具备 Flash 的间接性,但 Weppy 具备 Django 中的许多性能,如数据层和身份验证。因而,Weppy 实用于从极其简略到适度简单的应用程序。

长处

Weppy 的文档与框架自身具备雷同的格调。它洁净,可读,并且被人类生产。除了通常的“hello world”应用程序示例之外,它还蕴含一个很好的演练教程,能够让你创立一个微博零碎作为初学者我的项目。

毛病

尽管 Weppy 有一个扩大机制,但官网批准的附加组件列表很小,远小于 Flask 的扩大目录。

Bottle

Bottle 能够被认为是一种迷你烧瓶,因为它比其余“微框架”更加紧凑和简洁。因为其占地面积最小,Bottle 非常适合蕴含在其余我的项目中或疾速交付 REST API 等小型我的项目。

长处

Bottle 不须要像其余框架那样多的文档,但文档绝不是悭吝。所有要害的货色都适宜单个(只管很长)的网页。除此之外,还能够找到每个 API 的残缺文档,如何在各种基础架构上进行部署的示例,内置模板语言的解释以及一系列常见配方。

毛病

Bottle 极简主义的一个结果是有些性能基本就不存在。不反对表单验证,包含 CSRF 爱护等性能。如果要构建反对高度用户交互的 Web 应用程序,则须要本人增加它们。

逆锋起笔 是一个专一于程序员圈子的技术平台,你能够播种 最新技术动静 最新内测资格 BAT 等大厂大佬的教训 增长本身 学习材料 职业路线 赚钱思维 ,微信搜寻 逆锋起笔 关注!

退出移动版