设置DATABASE_URL环境变量

时间:2018-08-08 11:45:13

标签: python django django-settings

我正在尝试通过查看两个django来创建自己的项目结构。项目结构看起来像这样

环境

本地

  .django

  .postgres

。生产

 .django

 .postgres

在本地的postgres中,列出了以下项目

POSTGRES_HOST=postgres
POSTGRES_PORT=5432
POSTGRES_DB=marketing
POSTGRES_USER=username
POSTGRES_PASSWORD=password
DATABASE_URL=postgres://username:password@localhost:5432/marketing

设置文件分为三个部分,分别为base.py, local.py and production.py

在base.py中,我将DATABASES键配置如下

DATABASES = {
    'default': env.db('DATABASE_URL'),
}

但是我遇到错误

  

django.core.exceptions.ImproperlyConfigured:设置DATABASE_URL   环境变量

虽然,我在.envs / .local / .postgres中有DATABASE_URL,但遇到了错误。为什么呢?

2 个答案:

答案 0 :(得分:1)

.myfilename中的变量之前添加导出。

export POSTGRES_HOST=postgres
export POSTGRES_PORT=5432
export POSTGRES_DB=marketing
export POSTGRES_USER=username
export POSTGRES_PASSWORD=password
export DATABASE_URL=postgres://username:password@localhost:5432/marketing

然后做

source .myfilename

答案 1 :(得分:0)

对于基于python的解决方案,请检查this link(对用户@falsetru的信用)。

基本上,添加

import os

with open('.envs/.local/.postgres') as fh:
    os.environ.update(line.strip().split('=', 1) for line in fh)

在您的初始python脚本之一中,例如local.py