我有 PHP 背景,主要使用 Laravel/Symfony。最近,我开始使用 Django,我想重现通过 .env 文件提供环境变量的方式。
我希望在启动开发服务器后即可加载 .env,而不必担心它。因此我按照以下步骤操作:
首先,我创建了一个虚拟环境,设置了一个项目。
mkdir myproject cd myproject python3 -m venv ./venv echo vencv >> .gitignore pip install Django django-admin startproject mysite .
pip install python-dotenv
使用 python-dotenv 从 .env 文件加载环境变量很简单:
from dotenv import load_dotenv load_dotenv()
问题是在哪里放置此代码。每次加载 .env 文件可能会很乏味。根据我之前提到的设置,我的项目创建了以下结构(为简单起见,省略了一些文件):
myproject/ ├── mysite/ │ ├── __init__.py │ ├── asgi.py │ ├── settings.py │ ├── urls.py │ └── wsgi.py └── .env
如您所见,mysite 目录作为模块加载。所有环境变量都存储在 .env 文件中。为了加载它们,我将代码添加到 mysite/__init__.py 文件中:
from dotenv import load_dotenv load_dotenv()
这确保了每当我运行时都会加载所有环境变量:
python manage.py runserver
这种方法的缺点是,如果我对 .env 文件进行任何更改,我必须停止并重新启动服务器以重新加载环境变量。
以上是如何在 Django 项目中加载 .env的详细内容。更多信息请关注PHP中文网其他相关文章!