<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>fastapi &#8211; 萧邦的博客</title>
	<atom:link href="https://www.zlhlab.top/tag/fastapi/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.zlhlab.top</link>
	<description>If not me who, If not now when</description>
	<lastBuildDate>Tue, 09 Sep 2025 02:44:41 +0000</lastBuildDate>
	<language>zh-Hans</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.8.6</generator>
	<item>
		<title>在 Vercel 上部署 Python Flask 或 FastAPI 项目</title>
		<link>https://www.zlhlab.top/%e5%9c%a8-vercel-%e4%b8%8a%e9%83%a8%e7%bd%b2-python-flask-%e6%88%96-fastapi-%e9%a1%b9%e7%9b%ae/</link>
		
		<dc:creator><![CDATA[萧邦]]></dc:creator>
		<pubDate>Tue, 09 Sep 2025 02:44:41 +0000</pubDate>
				<category><![CDATA[技术]]></category>
		<category><![CDATA[fastapi]]></category>
		<category><![CDATA[vercel]]></category>
		<guid isPermaLink="false">https://www.zlhlab.top/?p=844</guid>

					<description><![CDATA[Vercel 是一个广受欢迎的 Web 应用部署平台，以其简单性和无服务器架构而闻名。虽然它常用于部署像 Ne<div class="more-link">
				 <a href="https://www.zlhlab.top/%e5%9c%a8-vercel-%e4%b8%8a%e9%83%a8%e7%bd%b2-python-flask-%e6%88%96-fastapi-%e9%a1%b9%e7%9b%ae/" class="link-btn theme-btn"><span>Read More </span> <i class="fa fa-caret-right"></i></a>
			</div>]]></description>
										<content:encoded><![CDATA[
<p>Vercel 是一个广受欢迎的 Web 应用部署平台，以其简单性和无服务器架构而闻名。虽然它常用于部署像 Next.js 这样的前端框架，但 Vercel 也支持基于 Python 的后端框架，如 Flask 和 FastAPI。本文将指导您完成在 Vercel 上部署 Python Flask 或 FastAPI 项目的步骤，包括项目设置、配置和部署。</p>



<h2 class="wp-block-heading">前提条件</h2>



<p>在开始之前，请确保您具备以下条件：</p>



<ul class="wp-block-list">
<li>一个 Vercel 账户（在 <a href="https://vercel.com/">vercel.com</a> 注册）。</li>



<li>一个准备好部署的 Flask 或 FastAPI 项目。</li>



<li>对 Python、Flask/FastAPI 和 Git 的基本了解。</li>



<li>已安装 Vercel CLI（运行 <code>npm install -g vercel</code>）。</li>



<li>项目已托管在 Git 仓库中（例如 GitHub、GitLab 或 Bitbucket）。</li>
</ul>



<h2 class="wp-block-heading">步骤 1：准备您的 Flask/FastAPI 项目</h2>



<p>要在 Vercel 上部署 Python 项目，您的应用必须适配 Vercel 的无服务器环境。以下是如何准备 Flask 或 FastAPI 项目。</p>



<h3 class="wp-block-heading">Flask 项目示例</h3>



<p>对于 Flask 项目，确保您的项目结构如下：</p>



<pre class="wp-block-code"><code>my-flask-app/
├── app.py
├── requirements.txt
├── vercel.json
</code></pre>



<p><strong>app.py</strong>（示例 Flask 应用）：</p>



<pre class="wp-block-code"><code>from flask import Flask

app = Flask(__name__)

@app.route('/')
def home():
    return '来自 Vercel 上的 Flask 的问候！'

if __name__ == '__main__':
    app.run()
</code></pre>



<h3 class="wp-block-heading">FastAPI 项目示例</h3>



<p>对于 FastAPI 项目，结构类似：</p>



<pre class="wp-block-code"><code>my-fastapi-app/
├── main.py
├── requirements.txt
├── vercel.json
</code></pre>



<p><strong>main.py</strong>（示例 FastAPI 应用）：</p>



<pre class="wp-block-code"><code>from fastapi import FastAPI

app = FastAPI()

@app.get('/')
async def root():
    return {'message': '来自 Vercel 上的 FastAPI 的问候！'}
</code></pre>



<h3 class="wp-block-heading">依赖文件</h3>



<p>创建一个 <code>requirements.txt</code> 文件，列出项目的依赖项：</p>



<pre class="wp-block-code"><code># 对于 Flask
flask==2.3.2
gunicorn==20.1.0

# 对于 FastAPI
fastapi==0.95.1
uvicorn==0.21.1
</code></pre>



<p>Vercel 使用 <code>gunicorn</code> 作为 Flask 的 WSGI 服务器，使用 <code>uvicorn</code> 作为 FastAPI 的 ASGI 服务器，以在无服务器环境中处理请求。</p>



<h2 class="wp-block-heading">步骤 2：配置 Vercel</h2>



<p>Vercel 需要一个 <code>vercel.json</code> 配置文件来理解如何构建和部署您的 Python 项目。该文件指定了构建过程、路由和运行时设置。</p>



<h3 class="wp-block-heading">Flask 的 Vercel 配置</h3>



<p>在项目根目录创建 <code>vercel.json</code> 文件：</p>



<pre class="wp-block-code"><code>{
  "version": 2,
  "builds": &#91;
    {
      "src": "app.py",
      "use": "@vercel/python"
    }
  ],
  "routes": &#91;
    {
      "src": "/(.*)",
      "dest": "app.py"
    }
  ]
}
</code></pre>



<h3 class="wp-block-heading">FastAPI 的 Vercel 配置</h3>



<p>对于 FastAPI，<code>vercel.json</code> 文件因其 ASGI 特性略有不同：</p>



<pre class="wp-block-code"><code>{
  "version": 2,
  "builds": &#91;
    {
      "src": "main.py",
      "use": "@vercel/python"
    }
  ],
  "routes": &#91;
    {
      "src": "/(.*)",
      "dest": "main.py"
    }
  ]
}
</code></pre>



<h3 class="wp-block-heading"><code>vercel.json</code> 说明</h3>



<ul class="wp-block-list">
<li><code>"version": 2</code>：指定 Vercel 配置版本。</li>



<li><code>"builds"</code>：定义构建过程。这里我们使用 <code>@vercel/python</code> 运行时来处理 Python 应用。</li>



<li><code>"routes"</code>：将所有传入请求映射到您的应用文件（Flask 为 <code>app.py</code>，FastAPI 为 <code>main.py</code>）。</li>
</ul>



<h2 class="wp-block-heading">步骤 3：本地测试</h2>



<p>在部署之前，先在本地测试您的应用以确保其正常运行。</p>



<p>对于 Flask：</p>



<pre class="wp-block-code"><code>pip install -r requirements.txt
gunicorn --bind 0.0.0.0:8000 app:app
</code></pre>



<p>对于 FastAPI：</p>



<pre class="wp-block-code"><code>pip install -r requirements.txt
uvicorn main:app --host 0.0.0.0 --port 8000
</code></pre>



<p>在浏览器中访问 <code>http://localhost:8000</code> 以验证应用是否运行正常。</p>



<h2 class="wp-block-heading">步骤 4：部署到 Vercel</h2>



<p>项目准备好后，您可以将其部署到 Vercel。</p>



<ol class="wp-block-list">
<li><strong>初始化 Git 仓库</strong>（如果尚未完成）： <code>git init git add . git commit -m "初始提交"</code></li>



<li><strong>推送到 Git 托管服务</strong>（如 GitHub）： <code>git remote add origin &lt;您的仓库地址> git push origin main</code></li>



<li><strong>将 Vercel 链接到您的仓库</strong>：
<ul class="wp-block-list">
<li>使用 CLI 登录 Vercel：<code>vercel login</code></li>



<li>部署您的项目：<code>vercel</code></li>



<li>按照提示将项目链接到 Git 仓库或直接部署。Vercel 将检测 Python 运行时并使用 <code>vercel.json</code> 中的设置。</li>
</ul>
</li>



<li><strong>设置环境变量</strong>（如需要）：<br>如果您的应用需要环境变量（例如 API 密钥），在 Vercel 仪表板的 <strong>设置 > 环境变量</strong> 中添加它们。</li>



<li><strong>验证部署</strong>：<br>部署完成后，Vercel 会提供一个 URL（例如 <code>https://my-flask-app.vercel.app</code>）。访问该 URL 确认您的应用已上线。</li>
</ol>



<h2 class="wp-block-heading">步骤 5：持续部署</h2>



<p>要启用持续部署，请将您的 Git 仓库连接到 Vercel：</p>



<ul class="wp-block-list">
<li>在 Vercel 仪表板中，前往 <strong>新建项目</strong> 并导入您的仓库。</li>



<li>配置项目设置（Vercel 会自动检测 <code>vercel.json</code> 文件）。</li>



<li>推送到您的仓库，Vercel 将自动重新部署。</li>
</ul>



<h2 class="wp-block-heading">故障排除提示</h2>



<ul class="wp-block-list">
<li><strong>构建错误</strong>：确保 <code>requirements.txt</code> 包含所有依赖项，并且 <code>@vercel/python</code> 与您的 Python 版本兼容（Vercel 支持 Python 3.9+）。</li>



<li><strong>路由问题</strong>：检查 <code>vercel.json</code> 中的 <code>routes</code> 是否正确映射到您的应用入口点。</li>



<li><strong>超时错误</strong>：Vercel 的无服务器函数有最大执行时间（Hobby 计划为 10 秒，Pro 计划为 60 秒）。优化您的应用以快速响应。</li>



<li><strong>日志</strong>：在 Vercel 仪表板的 <strong>Functions > Logs</strong> 中查看部署日志以进行调试。</li>
</ul>



<h2 class="wp-block-heading">最佳实践</h2>



<ul class="wp-block-list">
<li><strong>保持依赖最小化</strong>：在 <code>requirements.txt</code> 中仅包含必要的包，以减少构建时间。</li>



<li><strong>使用环境变量</strong>：将敏感数据（例如数据库凭据）存储在 Vercel 的环境变量中。</li>



<li><strong>优化无服务器环境</strong>：确保您的应用是无状态的，因为 Vercel 的无服务器环境不会在请求之间保留状态。</li>



<li><strong>使用 Vercel CLI 本地测试</strong>：使用 <code>vercel dev</code> 模拟 Vercel 的本地环境。</li>
</ul>



<h2 class="wp-block-heading">结论</h2>



<p>通过正确的配置，在 Vercel 上部署 Flask 或 FastAPI 项目非常简单。通过设置项目结构、创建 <code>vercel.json</code> 文件并使用 Vercel 的 CLI 或仪表板，您可以在几分钟内让您的 Python 后端上线。无论您是构建简单的 API 还是完整的 Web 应用，Vercel 的无服务器平台都提供了一个可扩展且无忧的部署解决方案。</p>



<p>祝您部署顺利！</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
