Python Web框架FastAPI vs Flask 两者之间的异同.pdf

Python Web框架FastAPI vs Flask 两者之间的异同.pdf

  1. 1、本文档共17页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

Python是最流行的编程语言之一。从脚本到API开发再到机器学习,Python都有着它自己的足迹。因为Python注

重开发者的体验和其所能提供的大量工具而大受欢迎。网络框架Flask就是这样一个工具,它在机器学习社区中很

受欢迎。它也被广泛用于API开发。但是有一个新的框架正在崛起:FastAPI。与Flask不同,FastAPI是一个ASGI

(AsynchronousServerGatewayInterface异步服务器网关接口)框架。与Go和NodeJS一样,FastAPI是最快的基

于Python的Web框架之一。

FastAPIvsFlask

FastAPI的构建考虑了以下三个主要问题:

速度

开发者经验

开放标准

你可以把FastAPI看作是把Starlette、Pydantic、OpenAPI和JSONSchema粘合在一起的胶水。

本质上说,FastAPI使用Pydantic进行数据验证,并使用Starlette作为工具,使其与Flask相比快得惊人,具有与

Node或Go中的高速WebAPIs相同的性能。

Starlette+Uvicorn提供异步请求能力,这是Flask所缺乏的。

有了Pydantic以及类型提示,你就可以得到一个具有自动完成功能的良好的编辑体验。你还可以得到数据验证、

序列化和反序列化(用于构建一个API),以及自动化文档(通过JSONSchema和OpenAPI)。

也就是说,Flask的使用更为广泛,所以它经过了实战检验,并且有更大的社区支持它。由于这两个框架都是用来

扩展的,Flask显然是赢家,因为它有庞大的插件生态系统。

建议:

如果你对上述三个问题有共鸣,厌倦了Flask扩展时的大量选择,希望利用异步请求,或者只是想建立一个

RESTfulAPI,请使用FastAPI。

如果你对FastAPI的成熟度不满意,需要用服务器端模板构建一个全栈应用,或者离不开一些社区维护的Flask

扩展,就可以使用Flask。

开始

安装

与任何其他Python包一样,安装非常简单。

Flask

pipinstallflask

#or

poetryaddflask

pipenvinstallflask

condainstallflask

FastAPI

pipinstallfastapiuvicorn

#or

poetryaddfastapiuvicorn

pipenvinstallfastapiuvicorn

condainstallfastapiuvicorn-cconda-forge

与Flask不同,FastAPI没有内置的开发服务器,因此需要像Uvicorn或Daphne这样的ASGI服务器。

HelloWorld应用

Flask

#flask_code.py

fromflaskimportFlask

app=Flask(__name__)

@app.route(/)

defhome():

return{Hello:World}

if__name__==__main__:

app.run()

FastAPI

#fastapi_code.py

文档评论(0)

xu_092 + 关注
实名认证
内容提供者

高级系统分析师持证人

该用户很懒,什么也没介绍

领域认证该用户于2023年09月02日上传了高级系统分析师

1亿VIP精品文档

相关文档