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

将Django项目上传至Github,除SECRET_KEY外还有哪些需保密变量?

Django敏感信息保密与环境配置指南

一、除SECRET_KEY外,这些信息也必须保密

  • 数据库连接凭证:不管是MySQL、PostgreSQL的用户名、密码,还是Redis缓存服务的访问密码,生产环境的这类信息绝对不能提交到Github。本地开发用SQLite的话风险较低,但生产库的配置必须严格保密
  • 第三方服务密钥:比如发送邮件的SMTP密码、云存储(OSS/S3)的Access Key/Secret Key、支付平台的API密钥、OAuth2的客户端密钥等,全都是核心敏感信息
  • 生产环境专属配置:比如生产环境的DEBUG值(若误提交DEBUG=True到生产会引发安全风险),以及私有网络内的服务地址、端口等内部信息
  • 硬编码的凭证:如果脚本或配置里写死了管理员初始密码、测试用的用户token,这类内容必须删掉或移至.env文件存储

二、在Django里用.env是完全靠谱的方案

这和你在Express里的思路完全一致,也是Python生态中管理敏感信息的主流方式,操作步骤如下:

  1. 安装依赖包:pip install python-dotenv
  2. 在项目根目录创建.env文件,按键值对写入敏感变量:
    SECRET_KEY=your_actual_secret_key_here
    DB_PASSWORD=your_db_password
    SMTP_PASSWORD=your_smtp_pass
    
  3. 在settings.py开头加载这些变量,替换硬编码内容:
    from dotenv import load_dotenv
    import os
    
    # 加载.env文件中的变量
    load_dotenv()
    
    SECRET_KEY = os.getenv('SECRET_KEY')
    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.postgresql',
            'NAME': os.getenv('DB_NAME'),
            'USER': os.getenv('DB_USER'),
            'PASSWORD': os.getenv('DB_PASSWORD'),
            'HOST': os.getenv('DB_HOST'),
        }
    }
    
  4. 务必将.env加入.gitignore,同时可以创建.env.example文件,只保留变量名(留空或填示例值),方便其他开发者快速了解所需配置项

三、虚拟环境ll_env完全不影响保密

虚拟环境本来就不该提交到Github,就像你不会上传Express的node_modules一样。只要把ll_env目录加到.gitignore里即可——它只是本地用来隔离依赖的环境,内容都是本地生成的,和敏感信息无关,不会影响代码提交的安全性

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 09:20:13