QQ登录

只需要一步,快速开始

APP扫码登录

只需要一步,快速开始

查看: 2713|回复: 0

[Python] 用Python构建API的八大流行框架

[复制链接]

等级头衔

积分成就    金币 : 2861
   泡泡 : 1516
   精华 : 6
   在线时间 : 1321 小时
   最后登录 : 2025-7-5

丰功伟绩

优秀达人突出贡献荣誉管理论坛元老活跃会员

联系方式
发表于 2021-10-10 09:37:43 | 显示全部楼层 |阅读模式
       凭借着平缓的学习曲线和简单直接的语法,Python在全球范围内的受欢迎程度,正在呈指数级增长。该编码语言往往可以被用于Web开发、软件开发、数学计算、系统脚本、以及几乎所有其他的领域。作为开发人员的首选语言,人们除了得益于它的跨平台兼容性和代码的压缩能力,还可以通过Python框架,创建出强大的应用程序编程接口(API)。- o9 Q6 A1 E$ P. I
什么是API?
; }: \; ^" L8 d) ^0 n+ R% t2 Q$ O0 K       API可谓互联网上所有其他平台背后的引擎。它们可以协助不同的应用程序,在后台相互通信,并保持彼此的联系。您可以想象自己在一家餐厅里,手里拿着一份后厨可以烹制的所有菜肴的菜单。那么,接单系统在接受到您的订单后,会将其传递给后端进行处理。后台完成后,系统会从后端获取“烹饪好的食物”并发送给用户。这便是API的基本作用:帮助用户和系统进行沟通。
" N* e2 I* n: T% M! w/ B5 M+ \下面,让我们来看看八种可用于构建API的优秀Python框架:
* Y" z' p1 j9 D0 w5 I& c1. Django REST
7 S, L# j8 [8 C9 ]; O0 O, s 1.jpg
; k& A$ G8 l7 r) C  f       Django REST为开发人员提供了丰富的功能与选择。其中,Representational State Transfer(REST)是一种基于Web的架构系统,可用于数据通信。REST的功能包括:一组可浏览的Web API、多个简化了的API开发过程、以及内置的身份验证策略。我们可以使用单个PIP命令,来轻松地安装Django REST。当然,在安装Django REST之前,请确保在您的系统上已安装了Python 3.5或更高的版本。6 s/ v8 \& K4 B' f2 V
       Django REST不但可以提供便捷的ORM和非ORM源的序列化功能,而且该框架受到了 Red Hat、Mozilla和Heroku等流行组织的信任,以及各大活跃社区开发人员的持续支持。. `5 @8 @3 O( c$ J3 G
2. Flask Restful
8 ^5 I2 d8 u9 S! s) o% R 2.jpg + y- O) Y5 v4 w9 f* @0 D
       顾名思义,Flask Restful是为了简化和加速API开发过程,而量身定制的。作为轻量级的Python框架,它只需要几个命令,就可以完成API的构建。可以说,作为公认的API工具,Flask能提供直接易用的API开发体验。此外,Flask相对于格式化的字段模块、以及marshal_with()装饰器(decorator)等数据字段,也非常方便。1 L8 w7 J+ W9 k6 j, ?5 T) u6 O
       作为一个带有各种常见API特性的全栈式Python框架工具,Flask通过使用representation()装饰器,提供了诸如:XML、CSV和HTML多种数据的表示。
2 W. d# V% }" T- h& t       当然,你若想流畅地运行Flask,则需要在自己的机器上,事先安装好PyPy 2.7、或 Python 3.5及其更高的版本。
$ E" X- A1 b  z- @3. Falcon5 l8 O! ~2 ]- y8 J2 @5 F
3.jpg 0 u* e+ K0 h8 ^3 w( |- J
       作为开发人员的首选工具,Falcon可以被用来创建快速且高性能的API。它符合WSGI(Web服务器网关接口,Python Web Server Gateway Interface),能够与多个服务器和平台相兼容,而且可以通过其面向对象、和基于类的界面,给用户带来无缝的转换体验。
* @, a! i! x% [# b' s. Y4 m; m       Falcon使用HTTP和REST架构,来协助创建用户友好的设计。其REST框架通过提供开发调试器,来全面地简化了开发过程。而且,此类调试器能够与其内置的服务器实现良好的配合与协同。
. v; u! Q$ Y; ?* _       此外,与其他框架不同的是,Falcon的安装过程不但非常简单、直接,并且几乎不需要用户的人工干预。
* A/ Y2 f4 u2 R7 q6 g  h9 Y% |2 F4. Connexion
' x. }( r9 d$ k- e" h; c' u) a/ Z 4.jpg
9 t9 _, i6 ^' Z  R1 z3 H       Connexion能够自动处理HTTPS,并使用OpenAPI的各项规范。也就是说,您既可以基于Python代码生成API规范,又可以遵从OpenAPI规范,采取不同的路线。当然,您必须以YAML格式编写OpenAPI规范,然后映射到Python功能函数的各个端点上,以实现对请求及其端点的自动验证。
# s; u( m' M/ Z5 h# c0 Q1 {4 A4 ^       Connexion能够使用OAuth 2的授权类型,来处理基于令牌的身份验证。它既自带有Web Swagger Console UI,又允许用户调用某个API的端点。此外,Connexion框架还包含有:API版本控制、有效负载的自动序列化等其他方便的功能。
$ _: P% {& K6 t1 P5. FastAPI
) m+ ~& L8 |+ b( a 5.jpg
0 P$ `1 A, c& K4 d       顾名思义,FastAPI是用于构建API的最快Python框架之一。根据用户的反馈,它可以将开发的速度提高200-300%。目前,FastAPI被广泛地用于构建异步类型的Web应用,并得到了200多名社区贡献者的支持。+ Y7 F' Y- O" q9 O( C8 ^
       该Web框架不但能够使得开发过程变得快速且简单,还可以提供诸如:交互式API文档和重复性代码消除等,大量成熟的功能。由于是基于Python,因此该框架能将错误率减少约40%。
2 f* v" ?+ C% n5 P1 ?; A2 T       在FastAPI中,您也可以使用VSCode和PyCharm之类,常见编辑器的自动完成功能。此外,FastAPI框架还具有不限插件支持、以及集成化的安全协议等不错的特性。
2 P8 N* L8 e0 R( P! B4 N# R/ b: Y' T6.Hug
# E7 k6 n$ s  l' } 6.jpg
& ?' R' T$ I' g" s( A& V5 _' O       秉承着“一次编写,随处使用”理念的Hug,能够方便用户创建高效的API、本地包和CLI,并将其使用到代码中的任何地方。Hug的高速性能,源于它采用Cython进行编译,以及仅在必要时使用资源。
' E- V0 R5 I! d- [4 v/ i       目前,Hug能够支持Python 3,您可以使用单个PIP命令去安装它。同时,Hug拥有业内最好的API文档。您可以使用内置的hug.test模块,去测试API的完整Python栈。1 a$ J" H' o. M" F! D
7. Eve  q! u, x  @8 b: {# O3 \
7.jpg + X$ s' w/ g2 m: I# h! f, m3 n( f9 Q( W
       Eve的灵感来自Flask和Cerberus,并吸取了两者的精华。该工具专为那些需要让API的开发过程变得简单、快速和高效的用户,而量身定制。因此,该框架不但非常适合高效地创建中型的Web服务,而且提供了可定制的端点、分页、排序、以及过滤等功能。" e! {3 G; |: U; c
       总的说来,您在获得其开箱即用的数据验证支持的同时,还能调用Eve的身份验证、缓存、速率限制等高级功能。同时,该工具也增加了对于全方位的CRUD操作、以及跨源资源共享(CORS)功能的广泛支持。此外,您还可以轻松地将Eve与SQL数据库、MongoDB、Elasticsearch、以及Neo4js相集成。
; n8 s; R8 J0 T8. Cornice
4 \7 U7 M+ q  C& E7 f* _ 8.jpg
' M' [6 Q- v" _/ B       作为基于REST的Pyramid框架,Cornice为构建和记录基于REST的Web服务,提供了各种帮助。当然,它也可以为各种服务添加跨域资源共享(CORS)的支持。由于Cornice能够自动使用HTTP规范,因此Pyramid可以根据应用程序的需要,自行进行扩展。例如,它可以使用Pyramid的ACL进行认证授权,并在验证过程中发现无效的数据,进而触发400类型的错误。5 e9 u" D/ I" X8 ^7 Q0 B# K: \. X3 `9 {5 ]
       此外,该框架还允许您使用命令行Python工具—Tox,进行各种自动化测试。
( ]# u2 J" F0 e  g2 m8 q- K小结0 x$ I* r; }" c" u6 Y7 J
       可以说,API在我们使用的各种互联网服务中持续发挥着重要的作用。上文我们讨论了八种Python框架,都能够将API的开发过程变得简单且快捷。其中,Hug和Eve等框架更适合于小型项目,而Django、Flask和Falcon则适合于大型的应用程序。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|paopaomj.COM ( 渝ICP备18007172号|渝公网安备50010502503914号 )

GMT+8, 2025-7-6 01:09

Powered by paopaomj X3.5 © 2016-2025 sitemap

快速回复 返回顶部 返回列表