译者:今天,我们为您提供Hackernoon在SteelKiwi上发表的
文章的翻译。 她从事b2b和b2c软件解决方案的开发,并与她的博客读者分享在工作过程中获得的经验。
框架通过提供各种用于开发应用程序和服务的解决方案,使开发人员的工作更加轻松。 它们可以自动执行标准解决方案,从而节省时间。 因此,开发人员将重点放在不需要创造性思维的应用程序上,而不是常规任务上。
Skillbox建议: Python开发人员从头开始 实践课程。
我们提醒您: 对于所有“哈勃”读者来说,使用“哈勃”促销代码注册任何Skillbox课程时均可享受10,000卢布的折扣。
本文讨论了十个Python框架,这些框架对新手开发人员和专业人员都将有用。 在2018年,旧框架进行了更新,出现了值得关注的新工具。
开始之前...
当您开始选择框架时,请欣赏项目的规模和复杂性。 如果您要开发的是具有大量功能的大型系统,那么就需要全栈框架。 如果要创建相对较小的应用程序或服务,则应注意微框架。
有关某些框架的信息
在Wikipedia页面上提供 。 但是,最终决定必须基于上面已经阐述过的对自己的服务或应用程序的分析原理进行。
全栈框架
Django的
Django是一个免费的开源全栈框架。 它使您可以在一个软件包中添加大多数标准功能,而不必搜索单个库。
其中包括受欢迎的身份验证,URL路由,数据方案迁移等。
Django使用ORM将对象映射到数据库表。 相同的代码适用于不同的数据库,因此从一个数据库迁移到另一个数据库变得很简单。 Django使用的主要数据库是PostgreSQL,MySQL,SQLite和Oracle。 您可以添加其他人,但是为此,您需要第三方解决方案。
金字塔型
Pyramid是一个开放源代码框架,它以最小的时间和资源为开发人员提供了最大的机会。
该框架最有趣的功能是与大型和小型应用程序一起使用。 另外,值得重点介绍以下金字塔函数:
- 单文件应用程序;
- URL生成;
- 可扩展的配置;
- 灵活的认证和授权方案;
- 可理解的技术文件 。
涡轮增压器
TurboGears是一个用于Web应用程序的开源全栈框架。 它使开发人员可以快速创建可扩展的数据驱动的Web应用程序。 TurboGears带有方便的模板以及功能强大且灵活的ORM。
框架最重要的功能:
Web2py
这是用于Python的可扩展的开源全栈框架。 但是在开始使用它之前,需要记住它与Python 3不兼容。
但是Web2py带有自己的IDE,它具有代码编辑器,调试器和一键式部署。 在其他功能和工具中,值得强调以下内容:
- 无需安装和配置;
- 在Windows,Mac,Google App Engine,Amazon EC2以及任何支持Python 2.5–2.7或Java + Python的主机上工作;
- 使用各种协议;
- 高度的数据安全性;
- 错误跟踪器;
- 向后兼容,使您可以轻松地基于框架的早期版本使用应用程序和服务。
微框架
烧瓶
这是BSD许可的微框架。 它的开发人员受到Sinatra Ruby框架的启发。 它取决于
Werkzeug WSGI工具包和
Jinja2模板。
Flask具有模块化设计,可以适应许多任务。 开箱即用,开发人员可以接收以下功能:
- 内置服务器和调试器;
- Jinja2模板
- 支持安全的cookie;
- WSGI 1.0;
- 统一码
- 连接到任何ORM的能力。
创建了一个框架来支持Web应用程序开发人员,使他们有机会选择自己喜欢的扩展名。
酒瓶
最初旨在创建API的另一个微框架。 瓶子的特点是存在单个源文件。 和他一起工作不需要“和手鼓跳舞”。
它的默认功能包括路由,模板,实用程序和基本的WSGI抽象:
- 路由支持显示功能调用的请求,从而使您可以获得干净且动态的URL。
- 模板-开箱即用的许多有用工具,以及对mako,jinja2和cheetah的全面支持。
- 实用程序-方便访问数据,下载文件,Cookie,标头和其他与HTTP相关的元数据。
- 内置的HTTP开发服务器,该服务器支持功能fapws3,bjoern,GAE,CherryPy和其他带有WSGI的HTTP服务器。
对于原型设计,研究Web框架的结构以及创建小型应用程序而言,这是一个很好的解决方案。
小樱桃
CherryPy是一个简约的开源Web框架。 它提供了创建Python Web应用程序的功能,与构建任何其他面向对象的程序没有什么不同。
实际上,此基于CherryPy的Web应用程序是使用其自己的多线程Web服务器的独立Python应用程序。 CherryPy应用程序可在支持Python的任何操作系统(Windows,MacOS,Linux等)上运行。 它们可以部署在可以运行常规Python应用程序的任何环境中。 CherryPy应用程序不需要Apache,可以在Apache中运行CherryPy应用程序,就像在Lighttpd或IIS中一样。
CherryPy允许您使用任何类型的技术进行图案化,数据访问等。 它还可以处理文章,静态数据,Cookie,上传文件以及其他框架可以执行的其他所有操作。
他的独特能力:
- 同时简单地启动多个HTTP服务器;
- 强大的配置系统;
- 灵活的插件系统;
- “开箱即用”功能:缓存,解码,会话,身份验证,静态内容等;
- 能够在Python 2.7 +,Python 3.1 +,PyPy,Jython和Android下工作。
异步框架
桑尼奇Sanic是一个基于uvloop的Python框架,旨在快速处理HTTP请求。
它适用于Python 3.5+。 Sanic支持异步请求处理程序,使其与Python 3.5异步/等待功能兼容。 这大大提高了工作速度。
在基准测试中,当处理100个连接时,Sanic能够每秒处理33,342个请求。
龙卷风
Tornado同时是一个Python Web框架和一个异步网络库。 它使用非阻塞网络I / O并解决了C10k问题(这意味着,如果配置正确,它可以处理10,000+个并发连接)。
所有这些使它成为创建需要高性能并同时与成千上万的用户一起工作的应用程序的出色工具。
主要优点:
- 内置的用户身份验证支持
- 实时服务;
- 高品质的表现;
- Python Web模板语言
- 非阻塞HTTP客户端
- 实施第三方身份验证和授权方案(Google OpenID / OAuth,Facebook登录,Yahoo BBAuth,FriendFeed OpenID / OAuth,Twitter OAuth);
- 支持翻译和本地化。
红利
短跑
Dash是用于构建分析Web应用程序的开源Python框架。 对于对Web开发不太熟悉的大数据专业人员来说,这尤其有用。
Dash应用程序是运行Flask并通过HTTP与JSON数据包交换数据的Web服务器。 它们的界面为组件提供了React.js的功能。
使用Dash开发的应用程序显示在Web浏览器中,并且可以部署到服务器。 Dash应用程序本质上是跨平台的。
总之,我们可以说开发人员确实有很多框架。 他们每个人都有自己独特的机会。 但是,选择框架是您自己项目未来的重要决定,因此您不要急于这样做。
Skillbox建议: