FastAPI简介和环境搭建

FastAPI是Python中一个用于构建API的Web框架。FastAPI框架设计的十分简洁、现代,相比于有着许多沉重历史包袱和过度设计的Django、Flask等框架,FastAPI的开发体验更好。此外FastAPI还是基于ASGI开发的,如果你的应用需要处理大量并发请求或需要利用异步编程带来的性能优势,相比传统的基于WSGI的框架,使用FastAPI框架会带来明显的性能提升。
官方文档:https://fastapi.tiangolo.com/
项目Github地址:https://github.com/tiangolo/fastapi
安装uvicorn和FastAPI
FastAPI需要使用ASGI服务器来运行,其中uvicorn是一个比较流行的选择,执行下面命令安装uvicorn和FastAPI框架。
pip install fastapi uvicorn
注意:在开发环境中,建议创建Python虚拟环境安装依赖。
编写示例程序
我们编写以下程序。
main.py
from fastapi import FastAPI
app = FastAPI()
@app.get('/')
async def root():
return {'message': 'Hello, world!'}
代码中,FastAPI是一个类,它实现了标准的ASGI接口供uvicorn调用。@app.get('/')创建了一个路由,它响应对于/路径的请求,最后我们的函数中返回一个dict类型的数据,它会被序列化为JSON返回给客户端。
运行程序
执行以下命令运行这个程序。
uvicorn main:app --reload
--reload:该参数指定文件被修改时自动重启服务,通常在开发环境中启用。
如果运行成功通常会看到类似如下的输出日志。
INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
INFO: Started reloader process [34928] using WatchFiles
INFO: Started server process [31400]
INFO: Waiting for application startup.
INFO: Application startup complete.
程序启动成功后,我们就可以使用浏览器访问http://127.0.0.1:8000来调用这个接口了。此外我们也可以访问http://127.0.0.1:8000/docs查看自动生成的API文档。
如何操作数据库
和Django不同,FastAPI是非常轻量级的,它并不内置任何数据库相关的功能或是集成ORM框架。实际开发中,我们可以选择自己的方式来访问和持久化数据,如使用PyMySQL、SQLAlchemy等。