Vercel 部署 Python Flask/Fastapi 项目

2024-09-25

一、前言

很长一段时间我在寻找如何优雅地部署 Python 的 Flask/Fastapi 项目,最终找到了 Vercel。Vercel 的优势是部署简单,这个过程不需要关心服务器、域名、https 证书这些琐事。

本文以部署 Flask 为例进行部署,Fastapi 的部署方式类似。

二、准备工作

创建项目,目录结构如下:

|-- vercel-flask-demo
  |-- api
    |-- app.py
  |-- requirements.txt
  |-- vercel.json

2.1 api/app.py

vercel 会自动将 api 目录下的文件识别为 Functions,将 Flask 的主程序放在 api 目录下。

from flask import Flask

app = Flask(__name__)

@app.route("/")
def hello():
  return "Hello, World!"

2.2 requirements.txt

将项目依赖第三方包写入 requirements.txt 文件,vercel 会在部署时根据它安装依赖包。

Flask==3.0.3

2.3 vercel.json

将所有路由都指向 Flask 主程序。如果没有这个配置,部署之后会显示 404 错误。

{
  "rewrites": [
    { "source": "/(.*)", "destination": "/api/app" }
  ]
}

准备工作到这里就结束了,下面开始进行部署。

三、Vercel 部署 Github 项目

首先确保你已有 Github 仓库并将第二步创建的项目提交到了 Github 里面。

  1. 访问 vercel 官网, 点击右上角的 Log In 登录,通过 Github 方式进行登录

  1. 在 Overview 页面点击 Add New 下拉菜单,然后点击 Project 下拉选项

  1. Import 刚才新建的 Github 仓库

  1. 无需任何修改,直接点击 Deploy 按钮

  1. 看到这个撒花界面就说明部署成功了,点击 Continue to Dashboard 前往控制台

  1. 点击 Domains 对应的域名就可以访问 Flask 网页了

如果你的项目需要返回 restful api、使用 html 模板动态渲染、查询数据库等,
可以参考这个功能更丰富的示例: vercel-python-flask-demo

四、vercel-cli 部署本地项目

如果你不会操作 Github,可以使用 vercel-cli 命令行工具进行部署。

参考 官方文档安装 vercel-cli 在本机安装 vercel 命令行工具。

  1. vercel dev
$ vercel dev

dev 命令在开发时经常使用,第一次执行命令会确认一些信息,都按回车使用默认回答就可以。

如果使用 vercel 部署 github 项目失败,你的调试过程是: 修改代码,提交到 github,然后触发 vercel 部署,再验证是否部署成功,这个过程有点繁琐。
使用 vercel dev 相当于在本机模拟这个过程,如果 vercel dev 能把项目跑起来,那么提交到 github 部署也会成功。

  1. vercel --prod
$ vercel --prod

这个命令是将当前目录部署到 vercel 上,部署成功后终端会显示一个访问域名。

返回首页

本文总阅读量  次
总访问量: 
总访客量: