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

如何隐藏Django settings.py中SMTP邮箱配置的账号密码敏感信息

Django 敏感配置信息隐藏方案

你看到的GitHub上配置位置显示********有两种可能:一是开发者提交代码时直接用占位符代替了真实值,二是GitHub的敏感信息扫描功能自动对识别到的凭证做了脱敏处理。想要避免明文提交敏感信息,常用两种实现方案:

方案1:通过系统环境变量读取配置

不需要额外安装依赖,适合线上部署场景:

  • 在本地或部署服务器的系统环境变量中新增两个自定义变量,比如命名为DJANGO_EMAIL_USER、DJANGO_EMAIL_PWD,分别填入真实的邮箱账号和密码
  • 修改settings.py中的邮箱配置,改为从环境变量取值:
# SMTP Configuration
import os
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_PORT = 587 
EMAIL_USE_TLS = True
EMAIL_HOST_USER = os.getenv('DJANGO_EMAIL_USER', '')
EMAIL_HOST_PASSWORD = os.getenv('DJANGO_EMAIL_PWD', '')

方案2:通过.env文件管理配置

适合本地开发场景,配置更集中:

  • 首先安装依赖包:pip install python-dotenv
  • 在Django项目根目录新建名为.env的文件,写入敏感配置:
EMAIL_HOST_USER=你的真实邮箱账号
EMAIL_HOST_PASSWORD=你的真实邮箱授权码
  • 编辑项目根目录的.gitignore文件,添加一行.env,确保该文件不会被提交到Git仓库
  • 修改settings.py,先加载.env文件再读取配置:
# SMTP Configuration
import os
from dotenv import load_dotenv

# 加载.env文件中的配置
load_dotenv()

EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_PORT = 587 
EMAIL_USE_TLS = True
EMAIL_HOST_USER = os.getenv('EMAIL_HOST_USER', '')
EMAIL_HOST_PASSWORD = os.getenv('EMAIL_HOST_PASSWORD', '')

内容的提问来源于stack exchange,提问作者L.Calvin

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 19:15:09