部署虚拟 Web 服务器时遇到“环境变量”问题

问题描述 投票:0回答:1

我正在基于我参加的 Udemy 课程创建一个 Django Rest 框架后端项目,在项目开发过程中一切看起来都很好。当我使用本地主机设备时,该项目运行良好。

当我尝试为后端项目创建一个Web服务器时,我仍然在按照Udemy课程一一学习。突然,我遇到了一个问题,我的

environment variable/virtual variable
无法被检测到,并且自动创建了一个空白字符串并分配为整个环境变量/虚拟变量

这是命令提示符中发生的错误:

time="2023-09-26T12:07:55+08:00" level=warning msg="The \"DB_NAME\" variable is not set. Defaulting to a blank string."

time="2023-09-26T12:07:55+08:00" level=warning msg="The \"DB_USER\" variable is not set. Defaulting to a blank string."

time="2023-09-26T12:07:55+08:00" level=warning msg="The \"DB_PASS\" variable is not set. Defaulting to a blank string."

time="2023-09-26T12:07:55+08:00" level=warning msg="The \"DJANGO_SECRET_KEY\" variable is not set. Defaulting to a blank string."

time="2023-09-26T12:07:55+08:00" level=warning msg="The \"DJANGO_ALLOWED_HOSTS\" variable is not set. Defaulting to a blank string."

还有一个错误发生:

错误:数据库未初始化且未指定超级用户密码。 食谱应用程序 api-db-1 |您必须将 POSTGRES_PASSWORD 指定为非空值 食谱应用程序 api-db-1 |超级用户。例如,“docker run”上的“-e POSTGRES_PASSWORD=password”。 食谱应用程序 api-db-1 | 食谱应用程序 api-db-1 |您还可以使用“POSTGRES_HOST_AUTH_METHOD=trust”来允许所有 食谱应用程序 api-db-1 |无需密码的连接。这是推荐的。 食谱应用程序 api-db-1 | 食谱应用程序 api-db-1 |请参阅有关“信任”的 PostgreSQL 文档: 食谱应用程序 api-db-1 | https://www.postgresql.org/docs/current/auth-trust.html 食谱-app-api-db-1 |

这是我的 GitHub 存储库链接

有人可以解释一下到底发生了什么以及如何修复这个错误吗?如果有分步说明就好了。

python django-rest-framework docker-compose deployment uwsgi
1个回答
0
投票

这取决于您托管网络服务器的位置

在 Heroku 上,设置中应该有一个名为“Config Vars”的选项,您可以填写环境变量的名称和值

如果您在自己的计算机上或几乎任何使用命令行的地方托管项目,那么您可以创建一个 .env 文件并从程序中读取它,或者使用

export
在操作系统中设置 env 变量本身命令,例如
export DB_NAME=importantdatabase

© www.soinside.com 2019 - 2024. All rights reserved.