Django Projects和git

Jab*_*cky 7 python git django github

如何处理django github或任何其他公共域版本控制站点等Web框架的安全性.

settings.py罐,并且常会包含敏感的数据库信息,密码和密钥,这不应该在资源库,并且在普通视图上载.

什么是常见的做法和最麻烦的处理方式?

Joh*_*fis 6

正如@Selcuk 所提到的,12 Factor 应用程序提供了一个很好的指南,说明如何保护和隔离您的敏感信息。

在此处的另一个答案中:Django 设置:引发 KeyError,引发 ImproperlyConfigured 或使用默认值?
我解释了我倾向于使用的方法,以便尽可能接近 12 因素指南。
排序:

  1. 创建一个.env .ini文件,其中包含您的项目变量:

    DB_USERNAME=myDB
    DB_PASSWORD=for_your_eyes_only
    DEBUG=False
    MY_DJANGO_KEY=no_peeking_this_is_secret
    ...
    
    Run Code Online (Sandbox Code Playgroud)
  2. 在您的文件上添加.env.env.* .ini和,从而保护您的敏感信息不被上传到 github。.ini.*.gitignore
  3. 创建一个env.example(注意不要.在开头用 a 命名,因为它会被忽略)。在该文件中,您可以放置​​一个预期配置的示例,以便通过简单的copy, paste, rename to .ini or .env.
  4. 使用decouple.config读取您的配置文件:

    settings.py

    from decouple import Csv, config
    
    DEBUG = config('DEBUG', cast=bool, default=True)
    SECRET_KEY = config('MY_DJANGO_KEY')
    ...
    
    Run Code Online (Sandbox Code Playgroud)