Python框架

原文地址: https://hackr.io/blog/python-frameworks

Python程序员需要做些什么来让他们的生活更轻松?答案是框架。通过自动执行冗余任务,框架缩短了开发时间,使开发人员能够专注于应用程序逻辑而非常规元素。

因为它是领先的编程语言之一,所以Python的框架并不稀缺。不同的框架有各自的优点和问题。因此,需要根据项目要求和开发者偏好进行选择。

Python框架主要有三种类型,即全栈,微框架和异步。在继续讨论2019年最佳Python框架之前,让我们先简要介绍一下各种类型的Python框架。

Python框架的类型

1.全栈框架

这些框架是所有开发人员要求的一站式解决方案。表单生成器,表单验证和模板布局通常可以使用典型的全栈框架。

2.微框架

这些是轻量级框架,不提供其他功能和特性,例如数据库抽象层,表单验证以及特定工具和库。使用微框架的开发人员需要手动添加大量代码和其他要求。

3.异步框架

最近获得普及,任何异步框架都是一个微框架,允许处理大量并发连接。通常,为Python构建的异步框架使用编程语言的asyncio库。

2019年最佳Python框架

AIOHTTP
AIOhttp类型 - 异步框架

AIOHTTP是一个Python框架,它在很大程度上依赖于Python 3.5+功能,例如async和awaits。Python框架使用Python的asyncio库,因此是一个异步框架。

除了作为服务器Web框架之外,AIOHTTP还可以充当客户端框架。它提供了一个请求对象和路由器,可以将查询重定向到为处理相同问题而开发的函数。

主要亮点:
  • 允许有效地构建视图
  • 中间件支持
  • 可插拔路由
  • 信号
  • 支持没有Callback Hell的Client WebSockets和Server WebSockets
  • 瓶子
  • 瓶子类型 - 微框架

Bottle为使用它开发的每个应用程序创建单个源文件。Python的微框架最初是为构建API而开发的。除了Python标准库之外,Bottle没有制作小型Web应用程序所需的依赖项。

使用Bottle的一个最重要的优点是它允许开发人员更接近硬件。除了构建简单的个人用途应用程序之外,Bottle还非常适合学习Web框架和原型设计的组织。

主要亮点:

  • 适配器支持第三方模板引擎和WSGI / HTTP服务器
  • 允许从cookie,数据,文件上传和其他与HTTP相关的元数据进行简单访问
  • 内置HTTP服务器
  • 插件支持不同的数据库
  • 提供具有URL参数支持的请求分派路由

CherryPy

CherryPy的类型 - 微框架

CherryPy是一种流行的开源,面向对象的Python框架,遵循简约的方法。微框架是最古老的Python框架之一,于2002年6月首次亮相。

任何支持CherryPy的Web应用程序都是独立的Python应用程序,具有自己的嵌入式多线程Web服务器,可在任何支持Python的操作系统上运行。这样的应用程序可以部署在普通Python应用程序能够运行的任何地方。

不需要Apache服务器来运行使用CherryPy开发的应用程序。微框架允许开发人员使用任何类型的技术进行数据访问,模板化等。

主要亮点:

  • 许多用于身份验证,缓存,编码,会话,静态内容等的开箱即用工具
  • 灵活的内置插件系统
  • 符合HTTP / 1.1标准的WSGI线程池服务器
  • 内置的覆盖,分析和测试支持
  • 提供同时运行多个HTTP服务器的简便性
  • 强大的配置系统
  • 在Android上运行
  • CubicWeb
  • 立方网类型 - 全栈框架

由Logilab开发和策划,CubicWeb是一个免费的,语义的,开源的,基于Python的Web框架。基于数据模型,CubicWeb需要具有相同的定义才能开发功能应用程序。

与使用单独视图和模型的其他流行Python框架不同,CubicWeb使用cube。然后将多个多维数据集连接在一起,以便在数据库,Web服务器和一些配置文件的帮助下创建实例。

主要亮点:

  • OWL(Web Ontology Language)和RDF(资源描述框架)支持
  • 可重复使用的组件
  • 安全工作流程
  • 使用RQL(关系查询语言)嵌入简化与数据相关的查询
  • 支持多个数据库
    短跑
    短跑类型 - 微框架

Dash是一个基于Python的开源框架,用于构建分析Web应用程序。对于数据科学家来说,它是一个理想的Python框架,它不是Web开发的机制。

使用Dash设计的应用程序是运行Flask并通过HTTP请求与JSON数据包通信的Web服务器。他们的前端使用ReactJS渲染组件。Flask插件可用于扩展Dash的功能。

由于Dash应用程序在Web浏览器中呈现并可以部署到服务器,因此它们是跨平台和移动就绪的。Dash开发人员可以访问底层Flask实例及其所有可配置属性。

主要亮点: -

Dash应用程序需要很少的样板代码才能入门
错误处理(Dash Deployment Server)
高度定制化
LDAP集成(Dash Deployment Server)
插件支持
用于绑定UI控件的简单界面,包括下拉列表,图形和滑块
URL路由(Dash Deployment Server)
Django的
Django的类型 - 全栈框架

Django是用于开发Python应用程序的最受欢迎的Web开发框架之一。事实上,它最终成为2019年十大网络开发框架之一。Django框架遵循DRY(d on’t ř EPEAT ý我们自己)的原则。

与其他人不同,免费使用和开源的全栈Python框架包含大量内置功能,而不是将它们作为单独的库提供。Django利用其ORM将对象映射到数据库表。

这样可以使代码跨不同的数据库工作,并使从一个数据库迁移到另一个数据库变得更容易。虽然Django对MySQL,PostgreSQL,SQLite和Oracle数据库有固有支持,但它可以通过第三方驱动程序支持其他数据库。

主要亮点: -

大量现成的库
身份验证支持
数据库架构迁移
对象关系映射器(ORM)
支持Web服务器
模板引擎
URL路由
查看使用Django框架的优缺点。


鹘类型 - 微框架

为了快速构建Web API,Falcon是另一个广泛使用的Python框架。与需要加载大量依赖关系来构建HTTP API的其他Python框架不同,Falcon允许开发人员构建一个支持HTTP和REST架构的更简洁的设计。

根据Sanic进行的基准测试,Falcon能够使用与同时代相同的硬件处理大多数请求。Python框架旨在实现100%的代码覆盖率。Falcon被LinkedIn,OpenStack和RackSpace等大公司使用。

主要亮点: -

可扩展,高度优化的代码库
通过中间件组件和挂钩处理DRY请求
通过请求和响应类轻松访问标题和正文
Cython支持提高速度
惯用的HTTP错误响应
REST启发的资源类和URI模板提供直观的路由
通过WSGI助手和模拟进行单元测试
前期异常处理
烧瓶
烧瓶类型 - 微框架

Flask是另一种流行的Python框架,在BSD许可下可用。灵感来自Sinatra Ruby框架,微框架需要Jinja2模板和Werkzeug WSGI工具包。由于其轻巧的模块化设计,Flask很容易适应。

Flask允许开发人员构建一个可靠的Web应用程序基础,从而可以使用任何类型的扩展。微框架与Google App Engine兼容。

主要亮点: -

内置快速调试器
HTTP请求处理
内置开发服务器
Jinja2模板
RESTful请求调度
支持插入任何ORM
支持安全cookie以建立客户端会话
基于Unicode
单元测试支持
WSGI 1.0合规性
乔托
乔托类型 - 全栈框架

基于模型视图控制器模式,Giotto是Python的应用程序框架。为了让Web设计人员,Web开发人员和系统管理员能够独立工作,Giotto按顺序分离了Model,View和Controller元素。

Giotto包含控制器模块,使用户能够在Web上创建应用程序,IRC(Internet中继聊天)和命令行。

主要亮点: -

自动URL路由
使用SQLAlchemy进行数据库持久化
非常简洁的代码
功能性CRUD模式
通用模型和视图
内置缓存,支持Memcache和Redis(可用API,用于扩展对其他引擎的支持)
用于HTML模板的Jinja2(可用于支持其他模板引擎的API)
多个可插拔控制器
RESTful界面与普通的“浏览器POST”CRUD站点
咆哮者
咆哮者类型 - 异步框架

受NodeJS和Express / Connect框架的启发,Growler是一个在Python的asyncio库上编写的微Web框架。

与其他传统的Python框架不同,Growler中的请求不是在框架中处理,而是通过中间件技术。

作为易于快速实现复杂应用程序的Python框架的首选,Growler最初是由作者开发的,用于简单地学习如何在最低级别使用asyncio库。

主要亮点: -

由于缺少必要的回调和正确的try / except块,很容易看到程序流
支持众多开源软件包
使用装饰器编写干净,可重用的代码
Ziapp模块允许将整个应用程序压缩为单个可执行文件
拥抱
类型 - 微框架

拥抱
Hug旨在允许Python开发人员开发一次API,然后在任何地方使用它。Python框架通过提供多个接口简化了API开发。它被标记为Python 3最快的Web框架。

无论您是在进行本地开发还是通过HTTP或通过CLI,Hug都可以让您快速,轻松地完成应用程序开发。为了将性能提升到新的水平,Hug仅在需要时才消耗资源并使用Cython进行编译。

主要亮点: -

注释驱动的验证
跟随写一次,随处使用哲学
内置版本管理
支持自动文档
MorePath
类型 - 微框架

标签为“超级动力Python Web框架”,MorePath确保最小的设置占用空间。它专门用于使大多数典型用例尽快启动和运行,包括引入RESTful Web服务的常见Python数据结构。

微框架,MorePath,是一个非常灵活的模型驱动的Web框架。Python框架可用的一个独特功能是,它可以自动将框架中定义的路径转换为使用最干净的URL创建应用程序的链接。

主要亮点: -

所有观点都是通用的。在视图中重用视图
提供开发RESTful Web服务所需的所有工具
创建通用用户界面就像子类化一样简单
可扩展的简单,连贯,通用的扩展和覆盖机制
灵活,简单,强大的权限
Pycnic
类型 - 微框架

Pycnic是面向对象的微框架,被认为是构建基于JSON的API的最快速度。针对基于JSON的API框架的小型,独立和优化,能够在大型企业中保持良好的基础。由于Pycnic只创建Web API,因此占用空间极小,因此速度很快。

主要亮点: -

内置错误处理
能够处理基于JSON的请求
处理路由
支持cookie
Pylons框架
主塔类型 - 全栈框架

Pylons Framework是一个基于Python的开源框架,专注于应用程序的快速开发。该框架是通过结合一些最好的元素和语言属性(包括Perl,Python和Ruby)来设计的。

尽管可以在维护模式下使用,但由于能够为Web开发提供高度灵活的结构,一些开发人员仍然使用Pylons框架。为了提高可重用性,全栈框架广泛使用WSGI(Web服务器网关接口)。

主要亮点: -

HTML表单验证和生成
路线
基于文本的模板
网址发送
基于WebHelper的路由配置的URL映射
金字塔
金字塔
类型 - 全栈框架

金字塔是另一个领先的Python框架。开源的基于Python的Web开发框架的主要目标是实现尽可能简单的复杂性。

金字塔最令人向往的方面是能够同样适用于小型和全尺寸应用。此外,根据要求的要求,有许多资源可用于扩展其能力。

主要亮点: -

灵活的身份验证和授权
功能装饰器
谓词
渲染器
单文件应用程序
模板和资产规格
网址生成
中信高科
中信高科类型 - 异步框架

Sanic构建于uvloop之上,是一个简单的开源Python框架,专门用于通过异步请求处理提供快速HTTP响应。因此,它是Python的异步框架。

Sanic支持异步请求处理程序,使其与Python 3.5的async / await函数兼容。它可以提高速度并提供无阻塞功能。

在一个进程和100个连接的基准测试期间,Sanic能够在一秒钟内处理多达33,342个请求。

主要亮点: -

能够读写cookie
允许不同类型的日志记录,例如访问日志和错误日志
基于类的视图
易于应用装饰器的处理程序支持
插件支持
支持应用程序中的子路由蓝图
可以使用点表示法或类似字典来修改配置对象
龙卷风
龙卷风类型 - 异步框架

Tornado是一个开源Python框架和一个异步网络库。除了解决C10k问题(这意味着在任何给定时间处理10k连接),异步框架使用非阻塞网络I / O.

Python框架最初是为一家名为FriendFeed的公司开发的,该公司于2009年被Facebook收购.Tornado是构建要求高性能和数千个并发用户的应用程序的理想工具。

主要亮点: -

允许实施第三方身份验证和授权方案
提供高品质的输出
实时服务
支持翻译和本地化
用户身份验证支持
网页模板
的TurboGears
的TurboGears类型 - 全栈

TurboGears是一个面向Python的数据驱动的开源,全栈Web应用程序框架。该框架允许开发人员快速开发可扩展的数据驱动的Web应用程序。

除了支持灵活而强大的ORM之外,TurboGears还具有可理解的模板功能。全栈框架利用Genshi,Repoze,SQLAlchemy和WebOb等组件轻松快速地开发需要数据库连接的应用程序。

主要亮点: -

所有功能都实现为功能装饰器
可用的命令行工具
MochiKit JavaScript库集成
多数据库支持
MVC风格的架构
PasteScript模板
ToscaWidgets用于简化前端设计和服务器部署的协调
使用Pylons作为Web服务器
FormEncode的验证支持
的web2py
的web2py类型 - 全栈框架

对于寻求可扩展的全栈框架的Python开发人员来说,Web2Py可能就是答案。开源Python框架附带了自己的基于Web的IDE,其中包括代码编辑器,调试器和一键式部署。

虽然Web2Py允许用户在Python中创建动态Web内容,但它不支持Python 3.票务系统是Python框架最重要的功能之一。每当发生错误时,系统都会向用户发出票证。

主要亮点: -

能够在任何支持Python或Java和Python的Web托管平台上运行
向后兼容性
内置数据安全性,可防止多种常见漏洞,包括跨站点脚本,注入漏洞和恶意文件执行
没有安装和配置要求
遵循MVC模式
为国际化提供支持
多种协议的可读性
基于角色的访问控制

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值