蟒蛇是一种广泛使用的通用高级后端编程语言,对于那些需要快速进行原型设计和开发应用程序的初创公司以及需要将数据分析和统计技术集成到其中的数据驱动型公司而言,Python备受重视。工作流程。
根据Stack Overflow上的开发人员介绍,Python的可读性,灵活性和对数据科学操作的适应性使其结合成为最流行和最受欢迎的语言之一。在本文中,我们将探讨Python在其他编程语言中与众不同的原因,为什么它在数据科学家中很受欢迎,以及您应该在Python工程师中寻找的东西。
高水平,可读性和高效
蟒蛇的定义特征之一是它的 效率。每种编程语言都必须平衡程序员的时间和机器的资源。 蟒蛇偏重于前者,其指导思想可以归结为“应该有一种(最好只有一种)明显的方式来做某件事。” 这可能意味着在开发人员学习Python语法的来龙去脉时会有一定的学习曲线,但是与Java或C ++等更底层的实现语言相比,开发人员可以用更少的代码行完成更多工作。对于需要快速原型化应用程序并将其推向市场的初创公司而言,这种效率特别有价值。
蟒蛇is also famous for its 代码可读性,这意味着由开发人员用Python编写的应用程序对于必须将其维护数月和数年的开发人员而言,更容易理解。
受到数据科学家的钟爱
与R和Java一起,Python是最流行的语言之一 数据科学 和 统计分析。对于数据科学家来说,Python将Java在构建高流量Web应用程序方面的适用性与R专注于执行复杂的统计函数的功能相结合。
蟒蛇最强大的资产之一是其广泛的 图书馆。这些库可以使开发人员更轻松地执行复杂的任务 机器学习 或统计分析任务,而无需重写许多行代码。一些最受欢迎的库包括用于 数据处理 和 可视化 (NumPy,SciPy和matplotlib), 数据挖掘 和 自然语言处理 (模式,NLTK)。也许不足为奇的是,Python是具有大量数据工作流的组织(从YouTube到纽约证券交易所再到National Web Service)的首选语言。
蟒蛇basics
- 它的 面向对象.
- 它是跨平台的,可在Linux,Windows,Mac和大多数其他操作系统上运行。
- 蟒蛇的标准库支持:
- 的HTML& XML格式
- JSON格式
- 邮件处理
- HTTP服务器库,易于开发服务器,并支持FTP,IMAP和其他Internet协议
- 它是免费的,并得到活跃的开源社区的支持。
- 通常在LAMP软件堆栈中代替PHP。
蟒蛇开发人员的工具箱
您应该在Python工程师中寻找什么?大型,高流量应用程序的经验以及SQL和数据库优化的流利性是最重要的。 蟒蛇开发人员的常见职责和核心技能包括模块化编程,面向对象的编程以及对SQL的丰富经验。
蟒蛇Web框架指南
全栈还是微框架?
选择框架的主要考虑因素之一应该是项目的规模和复杂性。如果您尝试获得功能丰富的Web应用程序,该应用程序将与组织的其余系统集成在一起,那么全栈式选择可能会为您的团队节省大量时间和精力。另一方面,如果您正在从事一个小型,相对简单,需求很少的项目,那么微框架可能满足您的所有需求。
一个相关的问题是您需要从框架中获得多少“脚手架”。全栈选项应具有构建实用的Web应用程序所需的几乎所有内容,包括表单生成器,模板,访问控制列表等,以便您的团队可以根据需要组合各个部分。对于试图快速将产品整合在一起的团队来说,这是一个有吸引力的选择,因为它使他们可以专注于实际构建应用程序,而不是围绕它开发的东西。但是,如果您有复杂的自定义要求或已经在使用许多自定义软件,则可能一开始就无法利用所有这些库。
全栈选项
对于Python框架,有很多全栈选项。一些突出的示例包括TurboGears 2,Pylons和Web2py。也就是说,到目前为止,最受欢迎的选项是Django。
Django的 是最流行的Python框架,很容易理解为什么。目前,成千上万的网站都在使用Django,从日报到社交媒体,再到大型基金会和非营利组织的共享网站。由于Django最初是为在新闻编辑室中使用而开发的,因此,《华盛顿邮报》和《卫报》等主要每日出版物都依赖它就不足为奇了。像Eventbrite和Disqus这样的初创公司已经转向Django进行快速扩展,而Instagram和Pinterest等社交媒体巨头已经使用它来为其动态Web应用程序提供动力。
作为一个框架,Django以 快速 建立和 友好 初学者。这是一个“包含电池”的框架,这意味着它可以提供您需要的所有关键组件-模板渲染,ORM,身份验证,路由等。它的文档也非常丰富,其他一些流行的框架不一定是这种情况。
通过照顾很多决定,Django可以大大加快引导新项目所需的时间。但是,您获得的速度可能会失去长期的灵活性。例如,在大多数情况下,Django的内置ORM被认为是不错的选择,但它没有SQLAlchemy强大的ORM,而SQLAlchemy被广泛认为是最好的Python数据库抽象工具。从理论上讲,您可以在Django中使用SQLAlchemy,但您会失去很多使Django如此吸引人的功能。
Web2py 是另一个流行的全栈框架。 Web2py要记住的一件事是它不支持Python3。Web2py的原始开发人员曾承诺提供与Python 3兼容的后继产品,但截至2017年,它尚未出现。
尽管Web2py现在比最新版本的Python落后近十年,但仍被许多主要组织(包括许多国际银行)使用。是什么使这个较旧的框架仍然吸引许多开发人员?一个是 简单易学 作为Django,但还有更多 灵活 而且非常 随身携带。相同的代码几乎可以在带有SQL数据库或MongoDB的任何VPS上运行,无论是AWS还是Google App Engine。
整本书的文档及其背后的热情社区为Web2py提供了很好的支持。 Web2py的另一项出色功能是自带的IDE,其中包括代码编辑器,调试器,错误票证系统,一键式部署等。如果您的组织在可预见的将来致力于Python 2,或者您打算使用一些较旧的Python库和软件,则Web2py可以满足您的需求。
金字塔 从技术上讲不是一个全栈框架。取而代之的是将自己称为“ Goldilocks”框架,该框架功能丰富,无需强制执行一种工作方式,而轻巧则不会随着应用程序的增长而独自一人。它是许多经验丰富的Python开发人员最喜欢的框架,这要归功于它 模块化 和 透明度,已被小型团队以及Dropbox,Yelp,SurveyMonkey和Mozilla等技术巨头使用。
实际上,几乎所有Pyramid的组件都可以替换掉。您可以选择连接数据库的方式,甚至可以选择想要连接的数据库的类型。它不会像Django那样为您强制执行某些选择,并且还会阻止那种“魔术”功能,这些功能会自动处理某些任务,但并不总是以可预测或理想的方式运行。
金字塔经常以其安全系统而著称,它使设置和检查访问控制列表变得容易。值得一提的另一点是Pyramid的Traversal系统,用于将URL映射到代码,这可以使RESTful API的构建更加容易。
微框架
如果您不需要手工或全栈框架的复杂性怎么办?许多现代的Web应用程序需要大量的活动部件,包括数据库抽象,表单验证和自定义的访问控制列表。但是,也有很多不需要的Web应用程序。对于此类项目,可能只是需要微框架。
这些超轻量级框架旨在使已死的简单Web应用程序尽快启动并运行。他们的功能集在设计上是最少的-故意遗漏了通过安装另一个库可以获得的任何功能。这种极简主义方法的好处是,您的代码可以更简洁,网站也可以更快。这至少部分是因为微框架通常不如全栈框架抽象。您所编写的代码将比实际的HTTP函数更接近于实际的HTTP函数,而不是使用对初学者更友好的框架。
烧瓶 是最流行的Python微框架,也是最流行的Python框架之一。与Django一样,它旨在使网络应用尽快启动并正常运行。尽管烧瓶很小,但Flask已被包括LinkedIn和Pinterest在内的大公司使用。
但是,有一点不同,那就是Flask绝对适合比Django更小的,更简单的项目。开箱即用,您可以期待开发Web服务器,内置单元测试以及对Google App Engine的支持。现在,您可以品尝一下香草Flask所没有的功能:尽管可以通过扩展添加所有这些功能,但没有数据库抽象层,表单验证,身份验证或上载处理功能。一些较常见的设置包括用于模板的Jinja2和用于数据库的CouchDB或SQLAlchemy。
一些Python开发人员更喜欢Flask而不是Django,因为Flask更具“ 蟒蛇风格”,因为它主要遵循Python的口头禅,即有一种做某事的方法,并且代码应明确说明其工作方式。如果您喜欢简洁的代码,并且不介意将代码靠近金属,那么Flask可能是一个不错的选择。
瓶子 是另一种流行的微框架。它最初是为构建网络API设计的,仍然是一个很好的用例。关于Bottle的新颖之处在于,它试图在一个文件中实现所有内容,这应该使您了解其设计的“微”程度。开箱即用,它带有路由,模板,实用程序以及基于WSGI标准的一些基本抽象。与Flask一样,您将比全栈框架更接近金属。尽管尺寸很小,但Netflix团队已使用Bottle来构建Web界面。
蟒蛇vs. 红宝石
一,相似点
两种都是高级服务器端脚本语言,它们专注于简单性并确定快速开发的优先级,从而以更少的代码行数快速完成工作。这些脚本避免使用冗长的代码,严格的层次结构和语法正确性,以获取更多幕后面向对象的逻辑。
借助标准库,持久性支持和功能丰富的框架(Python的Django框架和Ruby的Ruby on Rails),企业家和创业公司都使用它们来快速开发Web应用程序和原型。两种都是解释性脚本语言,这意味着它们不需要像Scala或C ++这样的编译器。但是,编译语言的运行速度往往更快。经验法则?开发速度的提高,运行速度的降低。
现在,让我们从Ruby开始深入探讨它们之间的差异。
红宝石& the 红宝石on Rails framework
红宝石创建于1995年,其核心面向对象,受诸如C ++,Perl和Java之类的语言的影响。以下是Ruby,它是一种非常适合协作,速度和业务需求的语言,而这些语言需要一种编程语言,其思维方式应与实际情况一样快。
首选用于: 网站开发,函数式编程
哲学: “事半功倍。”开发人员的自由和灵活性,以及不止一种做事的方式-它是继承自Perl的东西
为什么开发人员喜欢Ruby: 宽松而富有创意的编码,频繁的更新,自由和灵活性以及永不混淆的可读代码
蟒蛇&Django框架
蟒蛇就是关于效率并支持数据和科学领域中使用大量计算的应用程序。 蟒蛇及其Django框架一起实现了超快速的开发。
首选用于: 学术和科学编程。 蟒蛇有很多用于数据处理的库。
哲学: “正确的做事方式”
为什么开发人员喜欢Python: 稳定的变更,保守的代码,更少的更新