django 2无法将环境变量从.env文件加载到setting.py文件

2023-11-21

我尝试将环境变量从名为 .env 的文件加载到 settings.py 文件 在这里,我创建了 .env 文件和设置文件同一文件夹。

这是我的 .env 文件

DEBUG=on
SECRET_KEY=ksmdfw3324@#jefm
DATABASE_URL=psql://urser:[email protected]:8458/database
SQLITE_URL=sqlite:///my-local-sqlite.db
CACHE_URL=memcache://127.0.0.1:11211,127.0.0.1:11212,127.0.0.1:11213
REDIS_URL=rediscache://127.0.0.1:6379/1? 
client_class=django_redis.client.DefaultClient&password=ungithubbed-secret


MYSQL_DATABASE = student
MYSQL_USERNAME = root 
SECRET_KEY=secret-key

这是我的setting.py 文件

import os

from os.path import join, dirname
from dotenv import load_dotenv

dotenv_path = join(dirname(__file__), '.env')

load_dotenv(dotenv_path)

# Accessing variables.
dbname = os.getenv('MYSQL_DATABASE')
secret_key = os.getenv('SECRET_KEY')

# Using variables.
print(dabname)
print(secret_key)

我安装了pip install -U python-dotenv

问题是我无法在设置文件中获取环境变量

在尝试的同时python manage.py runserver我收到这个错误

C:\Users\mehul\AppData\Local\Programs\Python\Python36-32\lib\site- 
packages\dotenv\main.py:65: UserWarning: File doesn't exist
warnings.warn("File doesn't exist {}".format(self.dotenv_path))
Traceback (most recent call last):
File "manage.py", line 28, in <module>
execute_from_command_line(sys.argv)
File "C:\Users\mehul\AppData\Local\Programs\Python\Python36-32\lib\site- 
packages\django\core\management\__init__.py", line 371, in 
execute_from_command_line
utility.execute()
File "C:\Users\mehul\AppData\Local\Programs\Python\Python36-32\lib\site- 
packages\django\core\management\__init__.py", line 317, in execute
settings.INSTALLED_APPS
File "C:\Users\mehul\AppData\Local\Programs\Python\Python36-32\lib\site- 
packages\django\conf\__init__.py", line 56, in __getattr__
self._setup(name)
File "C:\Users\mehul\AppData\Local\Programs\Python\Python36-32\lib\site- 
packages\django\conf\__init__.py", line 43, in _setup
self._wrapped = Settings(settings_module)
File "C:\Users\mehul\AppData\Local\Programs\Python\Python36-32\lib\site- 
packages\django\conf\__init__.py", line 106, in __init__
mod = importlib.import_module(self.SETTINGS_MODULE)
File "C:\Users\mehul\AppData\Local\Programs\Python\Python36- 
32\lib\importlib\__init__.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 994, in _gcd_import
File "<frozen importlib._bootstrap>", line 971, in _find_and_load
File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 665, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 678, in exec_module
File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
File "C:\xampp\htdocs\epitastudent\epitastudent\settings.py", line 25, in 
<module>
load_dotenv()
File "C:\Users\mehul\AppData\Local\Programs\Python\Python36-32\lib\site- 
packages\dotenv\main.py", line 255, in load_dotenv
return DotEnv(f, 
verbose=verbose).set_as_environment_variables(override=override)
File "C:\Users\mehul\AppData\Local\Programs\Python\Python36-32\lib\site- 
packages\dotenv\main.py", line 98, in set_as_environment_variables
os.environ[k] = v
File "C:\Users\mehul\AppData\Local\Programs\Python\Python36-32\lib\os.py", 
line 675, in __setitem__
 self.putenv(key, value)
 ValueError: embedded null character

我不确定如何创建开发和生产环境变量以及这个嵌入的空字符。请帮助我任何人 提前致谢

编辑:我现在将 .env 文件添加到内部设置中

import os
import environ
root = environ.Path(__file__) - 3 # three folder back (/a/b/c/ - 3 = /)
env = environ.Env(DEBUG=(bool, False),) # set default values and casting
environ.Env.read_env() # reading .env file
print(os.getenv('DATABASE_NAME'))

如何区分开发环境凭据和生产凭据


试试这个:

import os
import environ

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
environ.Env.read_env(env_file=os.path.join(BASE_DIR, '.env'))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

django 2无法将环境变量从.env文件加载到setting.py文件 的相关文章

随机推荐

  • 保护我的代码免遭逆向工程

    正如类似问题中所讨论的here and here我想保护我的代码免受逆向工程的影响 我的情况是这样的Simucal在他的 优秀 答案中描述here 基本上 归结为 你唯一的机会是 源盗窃的目标是如果您 有一些非常具体 难以 工程师 与您相关
  • set 和 get 方法与公共变量的优点[重复]

    这个问题在这里已经有答案了 可能的重复 为什么要使用 getter 和 setter 在类中创建方法来访问私有变量而不是使变量成为公共变量有什么好处吗 例如 第二种情况比第一种情况更好吗 Case 1 public class Shoe p
  • Rails:HABTM - 查找所有没有关联的记录

    我有 2 个模型 锻炼 设备 它们属于多个关系 如果我使用Workout find all joins gt equipment conditions gt equipment id 5 它有效 但如果我使用Workout find all
  • 根据高度保持div长宽比

    我需要维护width元素占其元素的百分比height 因此 随着高度的变化 宽度也会更新 相反 可以通过使用 padding top 的 值来实现 但 padding left 作为百分比将是对象宽度的百分比 而不是其高度 因此 使用这样的
  • 高效附加到可变长度字符串容器(Golang)

    问题 我需要将多个正则表达式应用于大日志文件的每一行 例如几GB长 收集非空匹配并将它们全部放入一个数组中 用于序列化并通过网络发送 如果回答以下问题 切片没有多大帮助这个问题 holds 如果切片没有足够的容量 append 将需要分配新
  • 在 SQL Server 查询中将 NULL 替换为 0

    我开发了一个查询 在前三列的结果中我得到NULL 我怎样才能替换它0 Select c rundate sum case when c runstatus Succeeded then 1 end as Succeeded sum case
  • Java SSL:如何禁用主机名验证

    标准 java SSL 套接字是否可以通过属性禁用 ssl 连接的主机名验证 到目前为止我发现的唯一方法是编写一个始终返回 true 的主机名验证器 Weblogic 提供了这种可能性 可以使用以下属性禁用主机名验证 Dweblogic s
  • 仅允许使用“sudo su - user”的 Capistrano

    我正在尝试对远程服务器进行简单的 Rails Capistrano 部署 不幸的是我无法得到sudo开箱即可正确运行 我需要在这里部署 drwxr xr x 2 user www 4096 Sep 28 15 05 my app dir 并
  • 空闲 PostgreSQL 连接是否有超时?

    1 S postgres 5038 876 0 80 0 11962 sk wai 09 57 00 00 00 postgres postgres my app 1 45035 idle 1 S postgres 9796 876 0 8
  • Python 中的模块有标准别名吗?

    遵循中提出的指南这个帖子 我正在改变所有 from module import function function agt by import module as mdl mdl function agt 在我的代码中 我尝试使用常用的别名
  • 有没有办法在不支持的浏览器中渲染 SVG 图标?

    截至目前 似乎唯一支持它们的浏览器是 Firefox 显然 Opera 曾经支持它 但后来放弃了它 也许是 JavaScript 垫片 重用过程中与序列化无关的部分如何将 SVG 元素设置到页面的图标 创建一个
  • 不区分大小写的字符串比较

    我想比较两个变量以查看它们是否相同 但我希望此比较不区分大小写 例如 这将区分大小写 if var1 var2 但我希望它不区分大小写 我该如何处理呢 这相当简单 你只需要打电话strtolower 在两个变量上 如果需要处理 Unicod
  • Mono 缺少 System.Numerics.BigInteger.Parse(string,IFormatProvider)

    我目前使用以下错误Json NET Newtonsoft JSON图书馆 Missing method System Numerics BigInteger Parse string IFormatProvider in assembly
  • 名称中包含破折号的自定义 AngularJS 指令不起作用

    我编写了以下 Angular 指令 它将向所有子项添加 required 属性 directive requireall function compile return restrict A only want it triggered f
  • 将点连接到图中的回归线

    考虑以下数据ISLR 书 Income lt structure list X 1 30 Education c 10 10 4013377926421 10 8428093645485 11 2441471571906 11 645484
  • 如何在PHP中从PDF表单中提取字段值[关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 我们正在开发基于 PHP 和 MySQL 的应用程序 我们分发 PDF 格式的注册表 填写表格后 用户将 PDF 表格上传到我们的应用程序进行注册
  • 如何防止useQuery在状态改变时运行?

    我正在使用 React Apollo 从我的服务器获取数据 当我的页面加载时 我使用 useQuery 来检索数据 这很好用 问题是当我对搜索表单进行更改时 这会更新状态 从而导致不必要的重新渲染 从而再次调用服务器 我只想在页面加载和单击
  • 如何打印lda主题模型和每个主题的词云

    from nltk tokenize import RegexpTokenizer from stop words import get stop words from gensim import corpora models import
  • 如何提前停止处理 JSP?

    我有一个 JSP 页面 它调用一个函数并检查其返回值 如果返回值不为空 JSP 页面将继续使用它 如果返回值是null 我希望JSP页面的处理停止 这是因为该函数将在返回null对象之前执行重定向 而且 其余的JSP代码显然使用了这个对象
  • django 2无法将环境变量从.env文件加载到setting.py文件

    我尝试将环境变量从名为 env 的文件加载到 settings py 文件 在这里 我创建了 env 文件和设置文件同一文件夹 这是我的 env 文件 DEBUG on SECRET KEY ksmdfw3324 jefm DATABASE