Skip to content

高性能的Python的Web开发框架:FastAPI

如果你问我学习Web开发需要多长时间,我的回答是:五分钟(前提是有Python基础)。

本文将为大家推荐一款高性能、易于学习、高效编码且生产可用的Web开发框架——FastAPI。

什么是FastAPI

FastAPI

FastAPI是一个用于构建API的现代、快速(高性能)的web框架。

前后端分离已经成为Web开发的主流,FastAPI框架则主要为构建API而生,不再关心页面渲染相关的能力。

FastAPI也提出了一句响亮的口号:

FastAPI 框架,高性能,易于学习,高效编码,生产可用

您心动了吗?

FastAPI关键特性

  • 快捷

可与 NodeJS 和 Go 并肩的极高性能(归功于 Starlette 和 Pydantic)。最快的 Python web 框架之一。

  • 高效编码

提高功能开发速度约 200% 至 300%。

  • 更少bug

减少约 40% 的人为(开发者)导致错误。

  • 智能

极佳的编辑器支持。处处皆可自动补全,减少调试时间。

  • 简单

设计的易于使用和学习,阅读文档的时间更短。

  • 简短

使代码重复最小化。通过不同的参数声明实现丰富功能。bug 更少。

  • 健壮

生产可用级别的代码。还有自动生成的交互式文档。

  • 标准化

基于(并完全兼容)API 的相关开放标准:OpenAPI (以前被称为 Swagger) 和 JSON Schema。

大佬对FastAPI的评价

我说好没得用,看看全球大佬们的评价吧。

Kabir Khan - 微软

最近我一直在使用 FastAPI。实际上我正在计划将其用于我所在的微软团队的所有机器学习服务。其中一些服务正被集成进核心 Windows 产品和一些 Office 产品。

Piero Molino,Yaroslav Dudin 和 Sai Sumanth Miryala - Uber

我们选择了 FastAPI 来创建用于获取预测结果的 REST 服务。[用于 Ludwig]

Kevin Glisson,Marc Vilanova,Forest Monsen - Netflix

Netflix 非常高兴地宣布,正式开源我们的危机管理编排框架:Dispatch![使用 FastAPI 构建]

Brian Okken - Python Bytes 播客主持人

FastAPI 让我兴奋的欣喜若狂。它太棒了!

Timothy Crosley - Hug 作者

老实说,你的作品看起来非常可靠和优美。在很多方面,这就是我想让 Hug 成为的样子 - 看到有人实现了它真的很鼓舞人心。

Ines Montani - Matthew Honnibal - Explosion AI 创始人 - spaCy 作者

如果你正打算学习一个现代框架用来构建 REST API,来看下 FastAPI 它快速、易用且易于学习

我们已经将 API 服务切换到了 FastAPI 我认为你会喜欢它的

看了大佬们的评价,您有心动吗?

快速开始

  1. 安装依赖包
sh
pip install fastapi

pip install "uvicorn[standard]"
  1. 完成一个Demo

创建一个main.py文件,并敲入那神奇的代码(建议一个一个字符敲出来,体验见证神奇的过程,它是那么的美妙!)

python
from typing import Union

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: Union[str, None] = None):
    return {"item_id": item_id, "q": q}
  1. 运行

在终端输入以下命令启动服务:

sh
uvicorn main:app --reload

需要注意的是,启动命令需要在main.py文件目录下启动。

启动后效果如下图

FastAPI启动

  1. 访问

打开浏览器,在地址栏输入http://127.0.0.1:8000,当您看到{"Hello": "World"},说明您已经完成了一个Web服务。

到此,您心动了吗?

如果心动了,不妨花5分钟时间体验一下吧。

进阶

本文为您提供了一个最简单的Demo,如果在您的工作或者学习中想要进一步学习FastAPI并用于复杂的任务场景,推荐您阅读官方文档。

关注:遇码,回复:FastAPI,获取官方文档地址。

遇码MeetCoding 开源技术社区