如何从本地文件导入环境变量到Django

2024-01-25

我正在准备我的第一个专业 Django 项目的生产,但我在保护应用程序的环境变量方面遇到了问题。到目前为止,我已经成功创建了一个本地文件来存储我的电脑上的所有变量......

env_variables.py

import os

db_user = os.environ.get('db_user')
db_password = os.environ.get('db_password')

# AWS DJANGO
export AWS_ACCESS_KEY_ID = "access_key"
export AWS_SECRET_ACCESS_KEY = "secret_key"
export AWS_STORAGE_BUCKET_NAME = "bucket_name"

print(db_user)
print(db_password)

我使用环境设置(Windows)来创建用户名和密码。当我运行该文件时,它们起作用了。我正在使用我的 AWS 凭证来测试这一点。我一直认为 Django 可以访问这些信息,无论它在我本地电脑的哪个位置。如我错了请纠正我。

设置.py

...

AWS_ACCESS_KEY_ID = os.environ.get('AWS_ACCESS_KEY_ID')
AWS_SECRET_ACCESS_KEY = os.environ.get('AWS_SECRET_ACCESS_KEY')
AWS_STORAGE_BUCKET_NAME = os.environ.get('AWS_STORAGE_BUCKET_NAME')

...

我知道 Django 没有访问此文件,因为我的所有媒体文件都得到 400,但当我将密钥直接放入 settings.py 文件中时它就可以工作。我相信我在这里遗漏了几个步骤。我见过其他 python 编码器能够做到这一点,而无需使用 django-environ 或其他包之类的东西。如果有人可以提供帮助,我将不胜感激,因为我想为我的所有项目这样做。

Edit我的Procfile的gunicorn是web: gunicorn project_name.wsgi我没有修改我的 wsgi 文件。


我建议你使用Django 环境 https://github.com/joke2k/django-environ配置您的应用程序。 将所有配置值保存在一个单独的文件中,例如.env- 不应将其添加到存储库中。

.env

AWS_ACCESS_KEY_ID = "access_key"
AWS_SECRET_ACCESS_KEY = "secret_key"
AWS_STORAGE_BUCKET_NAME = "bucket_name"

现在在你的 Django 中设置.py加载 env 文件并使用相应的密钥。

设置.py

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

如何从本地文件导入环境变量到Django 的相关文章

  • Python 中的 if len(list)

    我正在将 Python 代码转换为 C 代码 以便利用 HPC 系统上可用的并行性 最初的程序员在 Python 中使用了一个令我困惑的条件 if rnum lt gt current res alim 0 if len f alim f
  • 如何绘制日期和月份

    我有一张随时间变化的每日趋势图表 年份与此处无关 我只想显示日期和月份 我知道你可以显示年份和月份 但事实并非如此 我尝试创建一个名为 Day Month 的新变量 import datetime as dt df Day df date
  • brew install python,但随后:“python-2.7.6 已安装,只是未链接”

    免责声明 菜鸟 操作系统 10 8 5 当我在 bash 中安装 python 时 我得到了这个警告和错误 https i stack imgur com TBgBT png Warning Could not link python Un
  • 如何按照文档规定的方式使用 python-daemon?

    我正在尝试用 python 创建一个守护进程 并且遇到了 python daemon 包 有趣的是 我见过的最常见的使用方式甚至不是文档 https www python org dev peps pep 3143 非常稀疏 告诉你要做的
  • Matlab 和 Python 中的优化算法(dog-leg trust-region)

    我正在尝试使用 Matlab 和 Python 中的狗腿信赖域算法求解一组非线性方程 在Matlab中有fsolve https www mathworks com help optim ug fsolve html其中此算法是默认算法 而
  • 删除网格线,但保留框架(matplotlib 中的 ggplot2 样式)

    使用 Matplotlib 我想删除图中的网格线 同时保留框架 即轴线 我已经尝试过下面的代码和其他选项 但我无法让它工作 如何在删除网格线的同时保留框架 我这样做是为了在 matplotlib 中重现 ggplot2 图 我在下面创建了一
  • 不区分大小写的用户输入字符串

    使用哪个函数使用户输入字符串不区分大小写 correctAnswer London userGuess input What is the capital of Great Britain if userGuess London print
  • 使用Python下载YouTube视频到某个目录

    我已尝试使用以下代码在 YouTube 中下载视频并且它可以正常工作 但我想将视频保存在特定位置 现在它正在将视频保存在C Users Download 如果我想将视频保存在桌面上 我需要对代码进行哪些更改 from future impo
  • 如何测试 Flask 开发服务器是否已启动?

    我的 Flask 应用程序上有一个测试装置 它启动开发服务器来测试一些用户交互 对于第一个测试 我想确保服务器已启动 一般而言 无需测试特定响应代码 执行此操作的最佳方法是什么 我希望我能用self assertTrue response
  • 如何将 python 点列表转换为 numpy 图像数组?

    我有一个 python 点列表 x y 坐标 200 245 344 248 125 34 它表示二维平面上的轮廓 我想使用一些 numpy scipy 算法进行平滑 插值等 它们通常需要 numpy 数组作为输入 例如scipy ndim
  • 将 python 字典翻译为 C++

    我有包含以下代码的 python 代码 d d 0 0 0 d 1 2 1 d 2 1 2 d 2 3 3 d 3 2 4 for i j in d print d i j d j i 不幸的是 对于我的目的来说 循环遍历 python 中
  • 使用 Python 从基于 AJAX 的网站提取信息

    我正在尝试使用 Python 检索基于 ajax 的网站 例如 www snapbird org 上的查询结果 由于它没有显示在页面源中 我不确定如何继续 我是一个Python新手 因此如果我能得到一个指向正确方向的指针那就太好了 如果更容
  • 将字符转换为日期时间 odoo 9

    我有两个字符字段 从 odoo 中的 excel 或 csv 导入数据 time 1 fields Char string Time 1 time 2 fields Char string Time 2 result fields Floa
  • 如何删除Python中特定字符之前的所有字符?

    我想删除指定字符或字符集之前的所有字符 例如 intro lt gt I m Tom 现在我想删除 lt gt before I m 或者更具体地说 I 有什么建议么 Use re sub 只需匹配所有字符即可I然后将匹配的字符替换为I r
  • 修改Keras中的层权重

    我正在尝试修改 Keras 中某个层的输出 我有一个编码器 它将时间序列转换为潜在空间 之后 对于每个压缩的时间序列 我想向时间序列添加一些数字 例如我有 input d Input 100 h1 d Reshape 100 1 input
  • ValueError:当数组不是序列时设置带有序列的数组元素

    您好 此代码旨在存储使用 open cv 绘制的矩形的坐标 并将结果编译为单个图像 import numpy as np import cv2 im cv2 imread 1 jpg im3 im copy gray cv2 cvtColo
  • 如何为python虚拟环境设置特定的python版本? [复制]

    这个问题在这里已经有答案了 我是 python 的新手 我正在尝试为我的项目添加一个新环境 该环境在我当前的环境 Python 3 7 5 上运行良好 添加所有依赖项后 我遇到了 pyttsx3 包的问题 用于 python 文本到语音 进
  • 如何使用 python 子进程杀死性能记录?

    我正在尝试使用性能实用程序 https www brendangregg com perf html监视我的系统 它将在 python 脚本中启动和终止 我创建了一个沙箱 如下所示 extra params F 99 g a record
  • 导入 matplotlib.pyplot 挂起

    我正在尝试在 OS X 10 8 4 上启动并运行 matplotlib 我已经安装了 matplotlib 和依赖项 libping freetype numpy scipy 我可以很好地导入 matplotlib 但是 如果我尝试导入
  • 姜戈。此函数的关键字参数无效。多对多

    我有这个错误 people 是该函数的无效关键字参数 class Passage models Model name models CharField max length 255 who models ForeignKey UserPro

随机推荐