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

能否在DigitalOcean通过App而非Droplet部署Django项目?

用DigitalOcean App Platform部署Django应用(针对Try-Django-3.2仓库)

当然可以用DigitalOcean App Platform部署你的Django应用,完全不需要依赖Droplet。针对你用Try-Django-3.2仓库部署失败的情况,下面是具体的操作步骤和常见问题排查:

一、本地项目预处理

  • 生成requirements.txt:原仓库可能没包含这个文件,DigitalOcean需要它来安装依赖。在本地项目根目录运行:
    pip freeze > requirements.txt
    
  • 配置静态文件:修改trydjango/settings.py,添加或调整:
    STATIC_ROOT = BASE_DIR / 'staticfiles'
    STATIC_URL = '/static/'
    
    本地先执行一次静态文件收集(也可以让DigitalOcean自动执行):
    python manage.py collectstatic --noinput
    
  • 调整ALLOWED_HOSTS:在settings.py里添加DigitalOcean分配的域名,或者临时用['*']测试(生产环境不建议用通配符):
    ALLOWED_HOSTS = ['your-do-app-domain.ondigitalocean.app', 'localhost']
    
  • 关闭DEBUG模式:生产环境必须设置DEBUG = False,并准备好安全的SECRET_KEY(后续在DigitalOcean后台设置环境变量)。
  • 数据库配置:如果用DigitalOcean托管的PostgreSQL,修改settings.py的DATABASES部分,用环境变量读取数据库信息:
    import os
    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.postgresql',
            'NAME': os.environ.get('DATABASE_NAME'),
            'USER': os.environ.get('DATABASE_USER'),
            'PASSWORD': os.environ.get('DATABASE_PASSWORD'),
            'HOST': os.environ.get('DATABASE_HOST'),
            'PORT': os.environ.get('DATABASE_PORT'),
        }
    }
    

二、DigitalOcean App平台部署步骤

  • 登录DigitalOcean控制台,创建新App,选择连接你的Try-Django-3.2 GitHub仓库。
  • 配置构建命令:在构建设置里输入:
    pip install -r requirements.txt && python manage.py collectstatic --noinput
    
  • 配置启动命令:输入:
    gunicorn trydjango.wsgi:application
    
    (注意:这里的trydjango是项目根目录下的Django配置目录,对应仓库里的同名文件夹)
  • 设置环境变量:在App的环境变量页面,添加以下变量:
    • SECRET_KEY:可用python -c "from django.core.management.utils import get_random_secret_key; print(get_random_secret_key())"生成安全密钥
    • DEBUG:设为False
    • 如果用托管数据库,DigitalOcean会自动注入DATABASE_NAME、DATABASE_USER等变量,无需手动添加。
  • 配置静态资产:在App的“静态资产”设置中,添加一条规则:
    • 路径:staticfiles
    • URL:/static/

三、常见失败原因排查

  • 缺少requirements.txt:DigitalOcean无法安装Django及依赖包,必须确保仓库里有这个文件。
  • 启动命令路径错误:如果wsgi文件不在trydjango目录下,要对应调整启动命令中的路径。
  • ALLOWED_HOSTS未配置:会导致400 Bad Request错误,必须添加App的域名。
  • 静态文件未收集:页面样式丢失或静态资源无法访问,确保collectstatic命令被执行。
  • DEBUG模式未关闭:生产环境开启DEBUG会暴露敏感信息,且可能导致部分功能异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 05:32:43