繁体   English   中英

从 pythonanywhere.com 中的 .env 文件读取环境变量

[英]Reading environment variables from .env file in pythonanywhere.com

已解决:我正在编辑错误的 WISGI 文件。 我没有意识到有 2 个单独的 WISGI 文件。 问题解决了。 感谢 Forcebru 的帮助。

我写了一篇文章,详细介绍了如何在 PytonAnywhere 上部署 Django的过程。 希望这可以帮助一些人避免我犯的陷阱。

我正在尝试使用 pythonanywhere.com 中的 a.env 文件设置环境变量,但我不断收到错误消息,提示我的 SECRET_KEY 为空,因此未设置我的环境变量。

我正在关注来自 pythonanywhere.com 的文章

链接: https://help.pythonanywhere.com/pages/environment-variables-for-web-apps/

import os
from dotenv import load_dotenv
project_folder = os.path.expanduser('~/my-project-dir')  # adjust as appropriate
load_dotenv(os.path.join(project_folder, '.env'))

我不太明白第三行。 在终端中,我 cd 进入项目文件夹并运行 pwd 命令以获取路径。 我不确定我应该为os.path.expanduser('~/my-project-dir')的参数包含什么部分。

按照文章中 bash 控制台的部分,我可以毫无问题地访问我的环境变量。 所以我想我正在使用正确的工作项目目录。 我能够回显到控制台。

这是我的 WISGI 文件:

import os
from dotenv import load_dotenv
from django.core.wsgi import get_wsgi_application

project_folder = os.path.expanduser('~/bogalusa-church')
load_dotenv(os.path.join(project_folder, '.env'))

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'bogalusa_church.settings')

application = get_wsgi_application()

我用于为 bash 终端设置变量的工作目录与我在这里使用的相同。

非常感谢任何见解。 感谢您提前提供任何帮助。

我不确定我应该包括哪一部分

主目录之后的部分。 如果您有/Users/forcebru/test ,那么参数将是~/test因为波浪号代表您的主目录( /Users/forcebru )。

如果您不确定您的主目录是什么,只需执行以下操作:

project_folder = <output of `pwd` after `cd` to project dir>

主目录的一部分

from dotenv import load_dotenv

project_folder = os.path.expanduser('~/AOJCM/')  # adjust as appropriate thats my directory
load_dotenv(os.path.join(project_folder, '.env'))

然后 settings.py

SECRET_KEY = os.getenv('SECRET_KEY')

**注意: .env 应该包含所有在等号之间没有空格的键 = **

export SECRET_KEY='djfjksdhfhsjfhjsdjfJjsKrandomsecretkey'

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM