1.6 运行服务器:Uvicorn 和 ASGI 简介
FastAPI教程:Uvicorn和ASGI服务器入门指南
本教程面向新手,详细介绍如何使用Uvicorn和ASGI运行FastAPI服务器,包括安装步骤和简单示例,助你轻松上手Python异步Web开发。
运行服务器:Uvicorn 和 ASGI 简介
欢迎来到FastAPI学习教程!在这一节中,我们将介绍如何运行你的FastAPI应用,重点关注Uvicorn和ASGI。无论你是刚入门Python Web开发,这些内容都将简单易懂。
什么是ASGI?
ASGI(Asynchronous Server Gateway Interface,异步服务器网关接口)是一个Python标准,用于构建异步Web应用程序。相比传统的WSGI(Web Server Gateway Interface),ASGI支持异步操作,这意味着它可以高效处理并发请求,适合现代Web应用如FastAPI。
- 为什么FastAPI使用ASGI? FastAPI基于异步编程,利用ASGI可以获得更好的性能和可扩展性。
- 简单理解:ASGI就像是Web服务器和你的应用之间的桥梁,但它可以处理多个任务同时进行,不阻塞。
什么是Uvicorn?
Uvicorn是一个轻量级、高性能的ASGI服务器,专门用于运行ASGI应用。它是FastAPI的默认推荐服务器,因为它支持异步特性,并易于使用。
- 优点:速度快、内存占用小、支持热重载(用于开发)。
- 常见用途:运行FastAPI、Starlette等ASGI框架的应用。
安装Uvicorn
在运行FastAPI应用之前,你需要安装Uvicorn。使用pip命令即可安装:
pip install uvicorn[standard]
[standard]选项会安装一些额外的依赖,如WebSocket支持,推荐使用以获取完整功能。
运行FastAPI应用
假设你有一个FastAPI应用,保存在一个名为main.py的文件中,其中有一个应用实例app。下面是运行步骤:
-
创建FastAPI应用示例(如果你还没有):
# main.py from fastapi import FastAPI app = FastAPI() @app.get("/") async def read_root(): return {"message": "Hello, FastAPI!"} -
使用Uvicorn运行服务器: 在命令行中,切换到你的项目目录,然后运行:
uvicorn main:app --reloadmain:app:指定应用所在的模块(main.py)和应用实例(app)。--reload:这是一个开发选项,当代码变化时自动重启服务器,方便调试。
-
检查运行结果: 服务器启动后,通常会显示类似这样的信息:
INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)打开浏览器访问
http://127.0.0.1:8000,你应该看到{"message": "Hello, FastAPI!"}。
进阶配置
-
更改端口和主机:
uvicorn main:app --host 0.0.0.0 --port 8080--host 0.0.0.0:允许外部访问。--port 8080:指定端口为8080。
-
生产环境建议:在生产中,通常不使用
--reload,而是结合反向代理(如Nginx)和进程管理器(如Gunicorn)来运行Uvicorn。
总结
通过本教程,你学会了使用Uvicorn和ASGI来运行FastAPI服务器。记住:
- ASGI是异步服务器接口,FastAPI基于它构建。
- Uvicorn是一个优秀的ASGI服务器,易于安装和运行。
- 使用
uvicorn main:app --reload快速启动开发服务器。
现在你可以继续探索FastAPI的其他功能了!如果你遇到问题,请参考官方文档或在社区寻求帮助。