我如何在 Django 中使用 .env?
How do I use .env in Django?
我的目标是使用 Python Django 发送电子邮件,而不在实际代码中显示我的电子邮件密码。经过一些研究,我想我可以将密码存储在 .env 文件中,然后从 .env 文件中访问密码。所以,我目前在我的 Django 项目中有一个 .env 文件,其中包含这行代码:
export EMAIL_HOST = 'smtp.gmail.com'
在我的 settings.py 中,我有这些:
import environ
env = environ.Env()
environ.Env.read_env()
EMAIL_HOST = os.environ.get('EMAIL_HOST')
print(EMAIL_HOST)
但是打印出来的结果是None。 print(os.environ) 虽然吐出一些东西。如何让我的 .env 文件工作?
不仅在Django中,一般都使用库python-dotenv。
from dotenv import load_dotenv
import os
load_dotenv()
EMAIL_HOST = os.getenv("EMAIL_HOST")
https://gist.github.com/josuedjh3/38c521c9091b5c268f2a4d5f3166c497
在您的项目中创建了一个文件 utils.py。
1: 创建一个 .env 文件来保存你的环境变量。
文件环境
DJANGO_SECRET_KEY=%jjnu7=54g6s%qjfnhbpw0zeoei=$!her*y(p%!&84rsl85io
DJANGO_DATABASE_HOST=database
DJANGO_DATABASE_NAME=master
DJANGO_DATABASE_USER=postgres
2:出于安全考虑,使用权限600 sudo chmod 600 .env
3:您现在可以使用变量 settigns.py
from .utils import load_env
get_env = os.environ.get
BASE_DIR = Path(__file__).parent.parent.parent
load_env(BASE_DIR / "../.env") #here you indicate where your .env file is
SECRET_KEY = get_env("DJANGO_SECRET_KEY", "secret")
这样它可以处理多个环境生产或 stagins
我的目标是使用 Python Django 发送电子邮件,而不在实际代码中显示我的电子邮件密码。经过一些研究,我想我可以将密码存储在 .env 文件中,然后从 .env 文件中访问密码。所以,我目前在我的 Django 项目中有一个 .env 文件,其中包含这行代码:
export EMAIL_HOST = 'smtp.gmail.com'
在我的 settings.py 中,我有这些:
import environ
env = environ.Env()
environ.Env.read_env()
EMAIL_HOST = os.environ.get('EMAIL_HOST')
print(EMAIL_HOST)
但是打印出来的结果是None。 print(os.environ) 虽然吐出一些东西。如何让我的 .env 文件工作?
不仅在Django中,一般都使用库python-dotenv。
from dotenv import load_dotenv
import os
load_dotenv()
EMAIL_HOST = os.getenv("EMAIL_HOST")
https://gist.github.com/josuedjh3/38c521c9091b5c268f2a4d5f3166c497 在您的项目中创建了一个文件 utils.py。
1: 创建一个 .env 文件来保存你的环境变量。
文件环境
DJANGO_SECRET_KEY=%jjnu7=54g6s%qjfnhbpw0zeoei=$!her*y(p%!&84rsl85io
DJANGO_DATABASE_HOST=database
DJANGO_DATABASE_NAME=master
DJANGO_DATABASE_USER=postgres
2:出于安全考虑,使用权限600 sudo chmod 600 .env
3:您现在可以使用变量 settigns.py
from .utils import load_env
get_env = os.environ.get
BASE_DIR = Path(__file__).parent.parent.parent
load_env(BASE_DIR / "../.env") #here you indicate where your .env file is
SECRET_KEY = get_env("DJANGO_SECRET_KEY", "secret")
这样它可以处理多个环境生产或 stagins