如何为自己的python包的init集成设置文件的最佳实践?
我已经创建了一个自己的python包(我们称之为ownerep),在其中我需要使用配置设置,例如 数据库访问地址、凭证等 我想在其他项目中使用自己的包。现在,我想避免的是我的 凭证是在OwnRep中硬编码的。因此,我开始考虑初始化 我的OwnRep软件包具有类似于Django和SciPy的设置,因此 软件包的设置是动态设置的 有什么解决方案吗? 概念图作为链接附加如何为自己的python包的init集成设置文件的最佳实践?,python,django,Python,Django,我已经创建了一个自己的python包(我们称之为ownerep),在其中我需要使用配置设置,例如 数据库访问地址、凭证等 我想在其他项目中使用自己的包。现在,我想避免的是我的 凭证是在OwnRep中硬编码的。因此,我开始考虑初始化 我的OwnRep软件包具有类似于Django和SciPy的设置,因此 软件包的设置是动态设置的 有什么解决方案吗? 概念图作为链接附加 将凭据放入您的环境中。这样更安全。然后创建一个名为settings.py的文件或任何您想要的文件,并执行以下操作: DATABASE
将凭据放入您的环境中。这样更安全。然后创建一个名为settings.py的文件或任何您想要的文件,并执行以下操作:
DATABASES = {
'default': {
'ENGINE': 'your_engine',
'USER': os.environ.get('DB_USER'),
'PASSWORD': os.environ.get('DB_PASSWORD'),
'HOST': '127.0.0.1',
'PORT': '5432',
'NAME': os.environ.get('DB_NAME'),
}
}
要实现这一点,您需要确保在实例化自己的包时提供了所有必需的凭据(api_密钥、用户名、密码)。这可以通过将实际信息传递给您自己的包或通过读取环境变量来完成 让我们举几个真实世界的例子:
通过这两个示例,我们可以根据需要在自己的代码上实现可移植性和安全性。无需在您自己的软件包中硬编码配置/凭据。谢谢,这绝对有效。但是,您知道保存嵌套结构的最佳解决方案是什么吗?例如,如果保存两个数据库名称?
import sendgrid
import os
from sendgrid.helpers.mail import *
sg = sendgrid.SendGridAPIClient(api_key=os.environ.get('SENDGRID_API_KEY'))
from_email = Email("test@example.com")
to_email = To("test@example.com")
subject = "Sending with SendGrid is Fun"
content = Content("text/plain", "and easy to do anywhere, even with Python")
mail = Mail(from_email, to_email, subject, content)
response = sg.client.mail.send.post(request_body=mail.get())
from oy import build_client
oy_client = build_client("https://sandbox.oyindonesia.com/staging/partner", "username", "api-key")
oy_client.get_balance()