You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Vercel上为已部署的Flask应用连接PostgreSQL/SQLite数据库?

在Vercel上部署Flask并连接数据库的解决方案

一、Vercel是否支持Flask应用部署?

完全支持。Vercel通过Serverless Functions对Python(包括Flask)提供官方支持,只要配置正确的项目结构和vercel.json文件,就能正常部署运行。

二、Flask连接Vercel PostgreSQL数据库的步骤

  1. 获取数据库连接信息
    在Vercel控制台的数据库管理页面,复制系统生成的DATABASE_URL(格式为postgres://user:password@host:port/dbname),这是连接PostgreSQL的核心凭证。

  2. 配置Flask数据库连接
    以Flask-SQLAlchemy为例,在你的Flask主文件中添加以下配置:

    from flask import Flask
    from flask_sqlalchemy import SQLAlchemy
    import os
    
    app = Flask(__name__)
    # 从Vercel环境变量中读取数据库链接
    app.config['SQLALCHEMY_DATABASE_URI'] = os.getenv('DATABASE_URL')
    app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
    
    db = SQLAlchemy(app)
    

    若直接使用psycopg2,可这样连接:

    import psycopg2
    import os
    
    conn = psycopg2.connect(os.getenv('DATABASE_URL'))
    

    注意:需在Vercel项目设置的「环境变量」中确认DATABASE_URL已正确添加并生效。

  3. 部署配置文件vercel.json
    确保项目根目录下存在vercel.json,配置示例如下(假设你的Flask主文件是app.py):

    {
      "builds": [
        { "src": "app.py", "use": "@vercel/python" }
      ],
      "routes": [
        { "src": "/(.*)", "dest": "app.py" }
      ]
    }
    

三、关于SQLite数据库的连接与局限性

Vercel是无服务器平台,文件系统为临时存储,生产环境绝对不建议使用SQLite——每次函数冷启动或部署后,SQLite文件中的数据会被重置,无法持久化存储。

如果仅用于本地测试或数据迁移:

  1. 可将本地SQLite数据库文件放在项目目录中,配置连接:
    app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///your_local_db.db'
    
  2. 若要保留数据,建议将SQLite中的数据导出为SQL脚本,在Vercel PostgreSQL中执行脚本完成数据迁移,之后改用PostgreSQL连接方案。

内容的提问来源于stack exchange,提问作者Deepti Sheoran

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 17:52:39