Django: os.environ.get vs import settings



views.py中,你更愿意做:

from django.conf import settings 
stripe.api_key = settings.STRIPE_SECRET_KEY

import os
stripe.api_key = os.environ.get('SECRET_KEY')

谢谢你的帮助。在我的设置中,我还使用os.environ.get导入。

设置只能在服务器启动时更改一次。

如果有人在运行时更改您的环境,那么您将面临错误或更糟的情况。


在测试方面,第二种方法会将您锁定在需要在具有完整环境控制的环境中运行的额外要求,而不是能够切换正在使用的设置文件。


第一种方法是 DRYer,您已经声明无论如何都要在设置文件中设置此设置,因此无需将相同的值设置为两个变量。


tl;dr - 永远不要使用第二种方法。

你的问题有点不对劲。第一个选项是如何访问代码中的密钥,但不指定如何获取密钥。会做的是把

import os
stripe.api_key = os.environ.get('SECRET_KEY'). 

在您的设置中。你会这样做有几个原因,首先你可以,但是你的项目在github上没有人看到你的密钥,第二,如果任何不应该访问你的代码的人确实掌握了它,他们没有这些信息。基本上,从环境中获取密钥或任何密钥比在您的设置中获取密钥要安全得多。然后,使用选项 1 在需要它的代码中访问它/。

最新更新