python web 框架_2018年需要学习的十大Python Web框架

python web 框架

框架通过为应用程序开发提供结构,使开发人员的生活更轻松。 它们使常见解决方案的实现自动化,从而缩短了开发时间,并使开发人员可以将更多精力放在应用程序逻辑上,而不是例程元素上。

在本文中,我们分享了我们自己的十大Python Web框架列表,我们认为这对您成为专业的后端开发人员和改善现有技能很有用。 请记住,这些框架的排列顺序不是特定的:我们专注于显示您的能力,而不是告诉您应该做什么。

要考虑的一些事情

在决定使用哪个框架时,请查看项目的大小和复杂性。 如果您要开发的是一个包含功能和需求的大型系统,那么全栈框架可能是正确的选择。 如果您的应用程序更小巧,更简单,那么您可能应该考虑使用微框架。

您可以在此处找到有关某些框架的类型和重点的信息。 不过,最终的决定应来自您对项目和要简化的任务的理解。

但是,框架也可以阻碍发展。 选择全栈框架时,您通常会签署一系列限制条件。 当然,您可以找到解决这些问题的方法,但是请注意,与使用纯Python编写应用程序相比,不要花更多的时间为自己的自由而战。

全栈框架

Django的

官方网站 | GitHub | PyPI | 太棒了

GitHub星级:31,592 | GitHub福克斯:13,361

python web 框架_2018年需要学习的十大Python Web框架_第1张图片

Django是一个免费的开源全栈Python框架。 默认情况下,它尝试包含所有必需的功能,而不是将它们作为单独的库提供。

Django的一些示例性功能是其身份验证 , URL路由, 模板引擎 , 对象关系映射器 (ORM)和数据库模式迁移 (Django v.1.7 +)。

Django使用其ORM将对象映射到数据库表。 相同的代码可用于不同的数据库,从一个数据库转移到另一个数据库并不难。 Django使用的主要数据库是PostgreSQL , MySQL , SQLite和Oracle ,但是第三方驱动程序也允许您使用其他数据库。

在SteelKiwi,我们使用Django作为后端开发的主要框架。 如果您想查看我们已经使用Django开发的出色应用程序,请访问我们的项目页面。

金字塔

官方网站 | GitHub | PyPI | 太棒了

GitHub星级:2,640 | GitHub福克斯:782

python web 框架_2018年需要学习的十大Python Web框架_第2张图片

Pyramid是一个基于Python的开源Web应用程序框架。 其主要目标是以最小的复杂度来尽可能多地做。

Pyramid的最显着特征是它在大型和小型应用程序中都能很好地工作。 金字塔的一些出色功能包括:

  • 单文件应用
  • URL生成
  • 可扩展的配置
  • 包罗万象的模板和资产规格
  • 灵活的身份验证和授权
  • 测试 ,支持和全面的数据文档
  • 查看谓词和许多按路线查看
  • 功能装饰器
  • 谓词
  • 渲染器

涡轮齿轮

官方网站 | GitHub | 聚酰亚胺

GitHub星级:230 | GitHub福克斯:56

python web 框架_2018年需要学习的十大Python Web框架_第3张图片

TurboGears是一个开源的,数据驱动的全栈Web应用程序框架。

它使您可以快速开发可扩展的数据驱动的Web应用程序。 TurboGears带有用户友好的模板以及强大而灵活的ORM。

TurboGears的一些独特功能包括:

  • 多数据库支持
  • MVC风格的架构
  • 支持SQLObject和SQLAlchemy
  • Kid和Genshi包含在首选模板语言中
  • 使用FormEncode进行验证
  • 定向塔作为Web服务器
  • ToscaWidgets,一个应用程序库,可简化前端设计和服务器开发的协调
  • PasteScript模板
  • 基于WSGI的前端服务器( 粘贴HTTP服务器 , CherryPy WSGI / HTTP服务器等)
  • 命令行工具
  • MochiKit JavaScript库集成
  • 实现为功能装饰器的所有功能

Web2py

官方网站 | GitHub | 聚酰亚胺

GitHub星级:1,536 | GitHub福克斯:742

python web 框架_2018年需要学习的十大Python Web框架_第4张图片

Web2py是可扩展的开源全栈Python框架。 但是,在进一步阅读之前,您应该知道Web2py不支持Python 3。

但是,Web2py的优点是它带有自己的基于Web的IDE,其中包括代码编辑器,调试器和一键式部署。

Web2py的其他重要功能包括:

  • 无需安装和配置
  • 能够在Windows,Mac,Linux / Unix, Google App Engine , Amazon EC2以及任何支持Python 2.5–2.7或Java + Python的网络托管上运行
  • 多种协议的可读性
  • 防止跨站点脚本编写,注入漏洞和恶意文件执行之类的漏洞的数据安全性
  • 成功采用软件工程实践,使代码易于阅读和维护
  • 错误跟踪,彻底的错误记录和票证
  • 基于角色的访问控制
  • 支持国际化
  • 向后兼容性可确保以用户为导向的发展,而无需与早期版本失去联系

微框架

烧瓶

官方网站 | GitHub | PyPI | 太棒了

Github星级:32,959 | GitHub福克斯:10,254

python web 框架_2018年需要学习的十大Python Web框架_第5张图片

Flask是获得BSD许可的Python框架。 它的灵感来自Sinatra Ruby框架。 Flask取决于Werkzeug WSGI工具包和Jinja2模板。

Flask的主要思想是帮助建立坚实的Web应用程序基础。 从那里,您可以使用可能需要的任何扩展。

Flask的轻巧和模块化设计使其可以轻松适应开发人员的需求。 它包括许多有用的现成功能:

  • 内置开发服务器和快速调试器
  • 集成的单元测试支持
  • RESTful请求分派
  • Jinja2模板
  • 安全cookie支持(客户端会话)
  • 符合WSGI 1.0
  • 基于Unicode
  • 能够插入任何ORM
  • HTTP请求处理

瓶子

官方网站 | GitHub | 聚酰亚胺

GitHub星级:5,198 | GitHub福克斯:1,065

python web 框架_2018年需要学习的十大Python Web框架_第6张图片

瓶子是一个微框架。 Bottle最初意在构建API,它在单个源文件中实现所有功能。 除了Python标准库外,它没有依赖项。 使用Bottle进行编码比使用任何全栈框架进行编码更接近金属。

它的默认功能包括路由,模板,实用程序以及基于WSGI标准的基本抽象。

  • 路由-支持对函数调用映射的请求,使您能够获得干净且动态的URL
  • 模板—快速可用的Pythonic 模板引擎 ,全面支持mako , jinja2和cheetah
  • 实用程序-轻松访问表单数据,文件上传,Cookie,标题和其他与HTTP相关的元数据
  • 服务器-一个内置的HTTP服务器的发展,支持fapws3 , 比约恩 , GAE , СherryPy ,以及任何其他WSGI能力的HTTP服务器

Bottle是用于原型制作,学习Web框架的组织以及构建简单的个人应用程序的理想解决方案。

樱桃派

官方网站 | GitHub | 聚酰亚胺

GitHub星级:595 | GitHub福克斯:161

python web 框架_2018年需要学习的十大Python Web框架_第7张图片

CherryPy是一个开放源代码的简约Web框架。 它使构建Python Web应用程序与构建任何其他面向对象的程序没有什么不同。

实际上,基于CherryPy的Web应用程序是一个独立的Python应用程序,它嵌入了自己的多线程Web服务器。 CherryPy应用程序可在支持Python的任何操作系统(Windows,macOS,Linux等)上运行。 它们可以部署在可以运行普通Python应用程序的任何位置。 CherryPy应用程序不需要Apache ,但是您可以在Apache后面运行CherryPy应用程序,就像在Lighttpd或IIS后面运行它一样。

CherryPy并不是一个非常有限的框架,因为它允许您使用任何类型的技术进行模板,数据访问等。 但是,它仍然能够处理会话,静态数据,Cookie,文件上传以及Web框架通常可以执行的所有其他操作。

CherryPy的一些默认功能包括:

  • 符合HTTP / 1.1的WSGI线程池化Web服务器
  • 一次运行多个HTTP服务器的简单性
  • 强大的配置系统
  • 灵活的插件系统
  • 开箱即用的工具,用于缓存 , 编码 , 会话 , 身份验证 , 静态内容 等
  • 内建对概要分析 , 覆盖率和测试的支持
  • 能够在Python 2.7 + , Python 3.1 + , PyPy , Jython和Android上运行

异步框架

桑尼奇

官方网站 | GitHub | 聚酰亚胺

GitHub星级:8,488 | GitHub福克斯:776

python web 框架_2018年需要学习的十大Python Web框架_第8张图片

Sanic是一个基于uvloop的Python Web框架,专门针对通过异步请求处理的快速HTTP响应而创建。

它可以在Python 3.5+上运行。 Sanic支持异步请求处理程序,这使其与Python 3.5的async / await函数兼容。 这提高了速度,提供了非阻塞功能。

在具有一个进程和100个连接的基准测试中,Sanic每秒能够处理33,342个请求 。

龙卷风

官方网站 | GitHub | 聚酰亚胺

GitHub星级:15,126 | GitHub福克斯:4,432

python web 框架_2018年需要学习的十大Python Web框架_第9张图片

Tornado是一个Python Web框架和异步网络库。 它使用无阻塞网络I / O并解决了C10k问题(这意味着,如果配置正确,它可以处理10,000多个并发连接)。

这使其成为构建需要高性能和成千上万并发用户的应用程序的绝佳工具。

龙卷风的主要特点是:

  • 内置对用户身份验证的支持
  • 实时服务
  • 高品质的表现
  • 基于Python的Web模板语言
  • 非阻塞HTTP客户端
  • 实施第三方身份验证和授权方案( Google OpenID / OAuth ,Facebook登录, Yahoo BBAuth ,FriendFeed OpenID / OAuth, Twitter OAuth )
  • 支持翻译和本地化

其他

短跑

官方网站 | GitHub | PyPI | 太棒了

GitHub星级:3,903 | GitHub福克斯:360

python web 框架_2018年需要学习的十大Python Web框架_第10张图片

Dash是用于构建分析Web应用程序的开源Python框架。 对于对Web开发不是很熟悉的Python数据科学家来说,这尤其有用。

Dash应用程序是运行Flask并通过HTTP请求与JSON数据包通信的Web服务器。 他们的前端使用React.js渲染组件。

使用Dash开发的应用程序将在Web浏览器中呈现,并且可以部署到服务器。 这也意味着Dash应用程序本质上是跨平台的并且可以移动。

Dash开发人员可以访问基础的Flask实例及其所有可配置属性。 为了扩展Dash应用程序的功能,开发人员还可以使用丰富的Flask插件集。

选择一个Python Web框架

正确的框架可能就是开发成功项目所需的全部。 我们真的希望您在本文中找到了一个有趣的框架。 如果您有兴趣探索更多选择,我们还有另一个,2017年的17个最佳Python Web框架 。

如果您访问了我们的公司GitHub页面,我们将非常高兴。 我们的SteelKiwi开发人员正在努力创新技术世界,参与的人越多越好。

翻译自: https://hackernoon.com/top-10-python-web-frameworks-to-learn-in-2018-b2ebab969d1a

python web 框架

你可能感兴趣的:(python,java,大数据,web,linux)