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

部署至DigitalOcean后本地运行Django应用报DATABASE_URL未定义错误

解决本地Django开发时DATABASE_URL未定义的问题

找到settings.py中抛出异常的数据库配置代码段,替换为以下逻辑,通过DEVELOPMENT_MODE区分本地开发与生产环境:

# 确保已导入这些模块
import os
from pathlib import Path

# 保留你现有的环境变量配置
DEVELOPMENT_MODE = os.getenv("DEVELOPMENT_MODE", "False") == "True"
DEBUG = os.getenv("DEBUG", "False") == "True"

# 分环境配置数据库
if DEVELOPMENT_MODE:
    # 本地开发使用sqlite3
    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.sqlite3',
            'NAME': BASE_DIR / 'db.sqlite3',
        }
    }
else:
    # 生产环境沿用原教程的DATABASE_URL配置
    import dj_database_url
    DATABASES = {
        'default': dj_database_url.config(
            default=os.environ.get('DATABASE_URL')
        )
    }
    # 可选:保持生产环境数据库连接持久化
    DATABASES['default']['CONN_MAX_AGE'] = 600

本地开发时启用DEVELOPMENT_MODE的两种方式

  • 临时终端设置:
    • Linux/macOS:export DEVELOPMENT_MODE=True
    • Windows CMD:set DEVELOPMENT_MODE=True
    • Windows PowerShell:$env:DEVELOPMENT_MODE="True"
  • 持久化配置(推荐):
    1. 安装依赖包:pip install python-dotenv
    2. 在项目根目录创建.env文件,写入:
      DEVELOPMENT_MODE=True
      DEBUG=True
      
    3. 在settings.py开头添加加载代码:
      from dotenv import load_dotenv
      load_dotenv()
      

这样配置后,本地运行会自动使用sqlite3数据库,生产环境依然遵循原部署教程的配置,不会影响线上应用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 10:15:12