查看原文
其他

能被选为2021最佳开源项目的WEB框架究竟有多棒?

TJ TJ君 2022-03-16

大家好,我是TJ

关注TJ君,回复“武功秘籍”免费获取计算机宝典书籍

喜欢开源的小伙伴,想必或多或少听说过InfoWorld的年度最佳开源软件评选

今年呢,哦不,应该说去年,也是评选出来了很多优秀的开源项目,覆盖了软件开发、云计算、机器学习等多个不同的领域。

TJ君呢今天要和大家分享的就是其中一个关于Web API框架的项目:

FastAPI

从名字我们不难想到,这应该是一个与快速构建API接口有关的项目。

的确,FastAPI是一个高性能、易上手、可快速编码的Web框架。

项目是基于标准Python类型使用Python 3.6+构建API应用,整个项目呢相比较其他而言框架,有着8大特点:

  • 速度快。
 

FastAPI,从名字就可想而知,速度一定是他引以为豪的一项优势,项目拥有非常高效的性能。作者坦言,可以和NodeJS、Go一样快速。

  • 编码简单
 

用了FastAPI,可以提升200%-300%的开发效率(题外话,TJ君倒蛮好奇这个200-300%是有官方数据检测出来的还是作者拍脑袋定下来的。。。)

  • 减少bug
 

可减少40%人为造成的不小心的失误,好吧,让人有点敢想象机器人替代人类的那一天。。。

  • 直观性
 

编辑器具有强大的支持功能,可以自动补全每一处代码,减少用户的debug时间

  • 易上手
 

不需要花太多的时间去学习就可以轻松上手入门并开始使用。

  • 短!
 

当然不是指男人在意的那个短。。。这个短是指可以减少重复冗余的代码,从而精简代码减少bug提高性能。

  • 强健壮性
 

拥有自动交互式机制,方便获取生产环境代码。

  • 基于标准
 

遵循最基本的API的开放标准,包括OpenAPI、JSON Schema,以使得有较高的兼容性。

项目运行的话需要Python 3.6+,安装命令如下:

$ pip install fastapi

---> 100%

对于Uvicorn或Hypercorn这些系列的产品,可能还需要额外安装一个ASGI服务器。

$ pip install "uvicorn[standard]"

---> 100%

我们可以看下main.py包括哪些内容:

from typing import Optional

from fastapi import FastAPI

app = FastAPI()


@app.get("/")
def read_root():
    return {"Hello""World"}


@app.get("/items/{item_id}")
def read_item(item_id: int, q: Optional[str] = None):
    return {"item_id": item_id, "q": q}

运行服务代码:

$ uvicorn main:app --reload

INFO:     Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
INFO:     Started reloader process [28720]
INFO:     Started server process [28722]
INFO:     Waiting for application startup.
INFO:     Application startup complete.

然后就可以在http://127.0.0.1:8000/docs看到交互式界面:

更进一步的操作,可能需要小伙伴自己尝试摸索啦,作为InfoWorld获奖的项目,FastAPI对于像希望快速建立标准强大Web API的小伙伴,绝对是一个利器。官网上还有不少学习指引,想试一试的小伙伴,赶紧来下载吧。如果你有喜欢的其他获奖的开源项目,也可以给TJ君留言,TJ君会挑选喜欢人数多的其他项目进行介绍分享哦,记得关注TJ君哦!

点击下方卡片,关注公众号“TJ君

回复“fastapi”,获取仓库地址

关注我,每天了解一个牛x、好用、有趣的东东

往期推荐

让你在浏览器也能享受H.265播放器的高清画面

吊炸天的个性化卡片式标签页插件,谁用谁知道!

偷走不经意流逝的时光,摸鱼神器:神偷

小巧但强大,浏览器开发常用工具插件一枚

无暗箱操作,无后台,无后门,这款年会抽奖程序真不错

程序员鼓励师插件?



您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存