高性能的Python的Web开发框架:FastAPI
如果你问我学习Web开发需要多长时间,我的回答是:五分钟(前提是有Python基础)。
本文将为大家推荐一款高性能、易于学习、高效编码且生产可用的Web开发框架——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 我认为你会喜欢它的
看了大佬们的评价,您有心动吗?
快速开始
- 安装依赖包
pip install fastapi
pip install "uvicorn[standard]"
- 完成一个Demo
创建一个main.py
文件,并敲入那神奇的代码(建议一个一个字符敲出来,体验见证神奇的过程,它是那么的美妙!)
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}
- 运行
在终端输入以下命令启动服务:
uvicorn main:app --reload
需要注意的是,启动命令需要在main.py
文件目录下启动。
启动后效果如下图
- 访问
打开浏览器,在地址栏输入http://127.0.0.1:8000
,当您看到{"Hello": "World"}
,说明您已经完成了一个Web服务。
到此,您心动了吗?
如果心动了,不妨花5分钟时间体验一下吧。
进阶
本文为您提供了一个最简单的Demo,如果在您的工作或者学习中想要进一步学习FastAPI并用于复杂的任务场景,推荐您阅读官方文档。
关注:遇码,回复:FastAPI,获取官方文档地址。