Linux 下如何安装和使用 FastAPI 进行 Web 开发
FastAPI 是一个现代、快速(高性能)的 Web 框架,用于构建 API。它基于 Python 3.7+,并使用了 Python 类型提示来提供强大的自动文档生成和验证功能。本文将详细介绍如何在 Linux 系统上安装和使用 FastAPI 进行 Web 开发。
1. 安装 Python 和 pip
在开始之前,确保你的 Linux 系统已经安装了 Python 3.7 或更高版本以及 pip。你可以通过以下命令检查是否已安装:
python3 --version
pip3 --version
如果未安装,可以使用以下命令进行安装:
sudo apt update
sudo apt install python3 python3-pip
2. 创建虚拟环境
为了隔离项目依赖,建议在项目目录中创建一个虚拟环境。首先,安装 venv
模块:
sudo apt install python3-venv
然后,创建一个新的虚拟环境:
python3 -m venv myenv
激活虚拟环境:
source myenv/bin/activate
3. 安装 FastAPI 和 Uvicorn
在虚拟环境中,使用 pip 安装 FastAPI 和 Uvicorn(一个 ASGI 服务器,用于运行 FastAPI 应用):
pip install fastapi uvicorn
4. 创建第一个 FastAPI 应用
在项目目录中创建一个名为 main.py
的文件,并添加以下代码:
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
def read_root():
return {"message": "Hello, World!"}
@app.get("/items/{item_id}")
def read_item(item_id: int, q: str = None):
return {"item_id": item_id, "q": q}
5. 运行 FastAPI 应用
使用 Uvicorn 运行 FastAPI 应用:
uvicorn main:app --reload
--reload
参数使 Uvicorn 在代码更改时自动重新加载应用。你可以在浏览器中访问 http://127.0.0.1:8000/
查看应用运行情况。
6. 访问自动生成的 API 文档
FastAPI 自动生成了交互式 API 文档。你可以通过以下 URL 访问:
- Swagger UI:
http://127.0.0.1:8000/docs
- ReDoc:
http://127.0.0.1:8000/redoc
7. 部署 FastAPI 应用
在生产环境中,你可能需要使用更强大的 ASGI 服务器(如 Gunicorn)来部署 FastAPI 应用。首先,安装 Gunicorn:
pip install gunicorn
然后,使用 Gunicorn 运行 Uvicorn 工作进程:
gunicorn -w 4 -k uvicorn.workers.UvicornWorker main:app
这将启动 4 个工作进程来处理请求。
8. 使用 Nginx 进行反向代理
为了进一步提高性能和安全性,可以使用 Nginx 作为反向代理。首先,安装 Nginx:
sudo apt install nginx
然后,配置 Nginx 以代理 FastAPI 应用。编辑 /etc/nginx/sites-available/default
文件,添加以下内容:
server {
listen 80;
server_name your_domain_or_ip;
location / {
proxy_pass http://127.0.0.1:8000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
保存并退出,然后重启 Nginx:
sudo systemctl restart nginx
现在,你可以通过访问 http://your_domain_or_ip/
来访问你的 FastAPI 应用。
9. 使用 Docker 容器化 FastAPI 应用
为了简化部署和确保环境一致性,可以使用 Docker 容器化 FastAPI 应用。首先,在项目目录中创建一个 Dockerfile
:
FROM python:3.9-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "80"]
然后,创建一个 requirements.txt
文件,列出所有依赖:
fastapi
uvicorn
构建 Docker 镜像:
docker build -t myfastapi .
运行 Docker 容器:
docker run -d -p 80:80 myfastapi
现在,你可以通过访问 http://your_domain_or_ip/
来访问你的 FastAPI 应用。
10. 总结
通过以上步骤,你已经在 Linux 系统上成功安装并使用了 FastAPI 进行 Web 开发。FastAPI 提供了强大的功能和易用性,使其成为构建现代 API 的理想选择。无论是开发小型项目还是大型应用,FastAPI 都能满足你的需求。希望本文能帮助你快速上手 FastAPI,并在你的项目中发挥其优势。
评论(0)