Linux 下如何安装和使用 FastAPI 进行 Web 开发

FastAPI 是一个现代、快速(高性能)的 Web 框架,用于构建 API。它基于 Python 3.7+,并使用了 Python 类型提示来提供强大的自动文档生成和验证功能。本文将详细介绍如何在 Linux 系统上安装和使用 FastAPI 进行 Web 开发。

1. 安装 Python 和 pip

Linux 如何安装和使用 FastAPI 进行 Web 开发

在开始之前,确保你的 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,并在你的项目中发挥其优势。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。