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应用程序,则需要自己添加它们。

成长离不开与优秀的同伴共同交流,如果你需要好的学习环境,好的学习资源,这里欢迎每一位热爱Python的小伙伴——创客python交流群(772882553)。

Python和MATLAB都是非常流行的编程语言,用于科学计算、数据处理、机器学习等领域。它们都有自己的优缺点,下面我将列出一些常见的比较。 Python的优点: 1. 简单易学:Python的语法简洁,易于学习和使用。代码可读性强,有助于减少开发时间和错误。 2. 开源免费:Python是免费的开源软件,可以轻松地下载和使用。 3. 丰富的库:Python有大量的开源库和框架,可以加速开发过程,如NumPy、Pandas、Matplotlib等等。 4. 跨平台:Python可以在多个操作系统上运行,包括Windows、Linux、Mac等等。 5. 大量使用:Python已经成为数据科学和机器学习领域的事实标准,通过使用Python,可以获得大量的支持和社区支持。 Python的缺点: 1. 运行速度慢:相比较其他一些编程语言,Python的运行速度较慢,这在处理大规模数据时会成为一个问题。 2. 内存占用大:Python在处理大量数据时,会占用大量的内存,这也会成为一个问题。 3. 一些库的稳定性:Python的一些库和框架可能不够稳定,需要进行一些额外的工作来确保程序的稳定性。 MATLAB的优点: 1. 面向科学计算:MATLAB是专门针对科学计算和数值计算而设计的,因此在这方面它非常强大。 2. 丰富的工具箱:MATLAB有大量的工具箱,可以完成很多常见的科学计算任务。 3. 高效的矩阵计算:MATLAB内置了高效的矩阵计算功能,因此在处理大规模数据时,它比Python更快。 4. 可视化能力强:MATLAB有强大的可视化能力,可以生成高质量的图表和图像。 MATLAB的缺点: 1. 商业软件:MATLAB是商业软件,需要购买许可证才能使用。 2. 不易扩展:MATLAB不易扩展,需要额外的工作来添加新的功能。 3. 速度问题:虽然MATLAB在处理大规模数据时比Python更快,但是在处理一般数据时,Python要比MATLAB快。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值