处理django秘密的简单方法。

django-secrets的Python项目详细描述


这个小应用程序可以帮助你不将秘密提交给回购协议,并添加 为新部署或使用环境变量自动测试导出/导入机密的一种好方法。

虽然我在编写代码时从未遇到过这种情况,但travis在可靠地执行测试方面遇到了一些问题。 热加载新的秘密,所以我把秘密模块移到我的秘密包中 两个模块命名为secrets。很显然,python无法处理这个问题。在大约40次特拉维斯建造之后吸取的教训。:(

django secrets在django 1.5+和python 2.7、3.5和3.6下工作

安装

pip install django-secrets

用法

安装包后,请将其添加到您的INSTALLED_APPS 设置

INSTALLED_APPS = (
    ...
    'django_secrets',
)

因为我们想隐藏我们的秘密设置,我们必须改变 在django魔术发生之前运行一些代码。正常开放 manage.py并按如下方式更改:

if __name__ == "__main__":

    from django_secrets.startup import check
    check()

    ...

现在检查已经就绪,运行manage.py初始化 项目。此WLL将在项目根目录中创建一个新的机密包 以下内容:

secrets
├── .gitignore
├── __init__.py
├── definitions.py
└── secrets.py

该包还具有一个.gitignore文件,以防止您检查 在吉特的秘密里。现在打开definitions.py添加您的秘密 在名单上。例如,从django密钥开始。当你的 添加完所有机密后,再次运行manage.py,将要求您 输入你的秘密。

现在您可以从settings.py中删除您的秘密,并替换 他们喜欢这样:

from my_secrets import secrets

SECRET_KEY = secrets.SECRET_KEY

因为这些秘密保存在一个普通的python包中,所以您可以使用 他们是正常的方式,但现在他们被拯救了!:)

导入/导出

这个包添加了一个新的管理命令:export_secrets。这个 将打印出导出语句,以便轻松创建环境 新机器上的变量并让check函数执行其余操作 对于您,因为它还将读取任何已知的环境变量 秘密价值观。对于动态生成的实例或 CI测试。

玩得开心,保持安全!

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何使用从PreparedStatement返回的RowId。getGeneratedKeys()?   selenium chrome驱动程序中下一个网站url的java空白页   java如何将参数化匿名类转换为lambda?   java JUnit在AfterClass上获取测试结果   java将动态XML/JSON内容与静态标记化负载进行比较,并检索标记值   java共享一个需要数据持久性的项目[数据库]   java在调用方法时获取意外的参数类型。getParameterTypes()   java如何用jdbc在swing中用另一个字段替换外键?   需要java Jersey Tomcat CDI依赖项解释   java如何生成UML图   java如何编写Jersey rest服务可以通过给定的spring代码访问   SpringMaven存储库管理器Nexus与Java依赖项的Artifactory   java将包从另一个项目导入eclipse中的当前项目   加密Java使用密码加密文件