今天咱来聊聊FastAPI,这玩意儿最近挺火,说是性能贼上手还快。作为一个爱折腾的人,我肯定得亲自试试水,看看它到底有没有传说中那么神。
安装走起
你得有个Python环境,版本得是3.7以上的。我早就装好Python 3.9,所以这步直接跳过。然后,打开你的命令行工具,输入下面这行命令:
pip install fastapi
小编温馨提醒:本站只提供游戏介绍,下载游戏推荐89游戏,89游戏提供真人恋爱/绅士游戏/3A单机游戏大全,点我立即前往》》》绅士游戏下载专区
等进度条跑完,FastAPI就算装好。不过光有FastAPI还不够,咱还得装个ASGI服务器,比如Uvicorn或者Hypercorn。我选Uvicorn,因为它用起来简单:
pip install uvicorn
写个“Hello, World!”
环境搭好,接下来就是见证奇迹的时刻。创建一个新文件,比如叫,然后把下面这段代码复制进去:
from fastapi import FastAPI
app = FastAPI()

async def read_root():
return {"Hello": "World"}
这段代码看着挺唬人,就干一件事:创建一个FastAPI应用,然后定义一个根路由“/”,当你访问这个路由的时候,它就返回一个JSON:{"Hello": "World"}
。
保存文件,然后在命令行里切换到所在的目录,输入:
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
,你应该就能看到{"Hello": "World"}
。是不是很简单?
加点料
光返回“Hello, World!”没啥意思,咱来加点参数。修改一下:
from fastapi import FastAPI
app = FastAPI()

async def read_root():
return {"Hello": "World"}
@*("/items/{item_id}")
async def read_item(item_id: int, q: str = None):
return {"item_id": item_id, "q": q}
这回咱加个新的路由“/items/{item_id}”,它接受一个路径参数item_id
,类型是整数,还有一个可选的查询参数q
,类型是字符串。FastAPI会自动帮你做类型检查和转换,如果参数类型不对,它会返回一个清晰的错误信息。
保存文件,Uvicorn会自动重新加载应用。试试访问http://127.0.0.1:8000/items/5
和http://127.0.0.1:8000/items/5?q=somequery
,看看返回结果有什么不同。
自动文档
FastAPI最让我喜欢的一点是,它会自动生成API文档。访问http://127.0.0.1:8000/docs
,你会看到一个交互式的API文档页面,你可以在这里测试你的API,查看每个接口的参数和返回值。这玩意儿简直是懒人福音,再也不用手写API文档!
总结
一番折腾下来,我对FastAPI的初步印象还不错。它确实像传说中那样,性能上手快,而且自动生成文档的功能简直不要太方便。不过这只是冰山一角,FastAPI还有很多高级特性,比如数据校验、依赖注入、安全认证等等,等我以后有时间再慢慢研究。FastAPI值不值得入坑不好说,至少说它还是个挺有意思的工具,这回分享就先到这里!