如何在 Django 的 views.py 中使用环境变量?

How to use environment variables in views.py in Django?

我正在使用 python-decouple 3.4 为我的 Django 应用程序设置 环境变量 。我的 .env 文件与 manage.py 的文件在同一目录中。除了SECRET_KEY(在settings.py中),在settings.pyviews.py中直接加载其他环境变量失败,说明它们尚未定义。 views.py.

中将使用其他给出错误的环境变量

这是我的 .env 文件:-

SECRET_KEY=<django_app_secret_key>
file_path=<path_to_the file>

如果我尝试在 settings.py 中定义它们,例如:-

from decouple import config
FILE_PATH = config('file_path')

然后在views.py

中使用它们
from django.conf.settings import FILE_PATH
print(FILE_PATH)

然后我也得到同样的错误。如何专门为我的 views.py 定义环境变量?

[编辑:这是我得到的错误:-

raise UndefinedValueError('{} not found. Declare it as envvar or define a default value.'.format(option))
decouple.UndefinedValueError: file_path not found. Declare it as envvar or define a default value.

我是否用过这个

from decouple import config
    FILE_PATH = config('file_path')

直接在 settings.py 中或直接 views.py 或首先在 settings.py 中然后在 views.py 中,如上例所示]

我复制了您解释的相同代码,它对我有用。 .env 文件应位于 manage.py 所在的根文件夹中。确保您引用的是相同的设置文件:

python manage.py runserver --settings=yourproj.settings.production

在 .env 文件中:

file_path='/my/path'

在 settings.py 文件中:

from decouple import config
FILE_PATH = config('file_path')

同样在views.py文件中导入应该是这样的:

from django.conf import settings
print(settings.FILE_PATH)

.env 文件中,分配给变量的值没有包含在 qoutes 中,这就是它给出无法找到 file_path 变量的错误的原因。

.env 文件应该是这样的:-

SECRET_KEY='<django_app_secret_key>'
file_path='<path_to_the file>'

无论如何感谢@Iain Shelvington and @Prakash S的帮助。