如何在将其推送到 github 之前在 django 中隐藏 google map api 密钥?

ims*_*ful 7 python django python-3.x

这是我的谷歌地址 api 脚本,其中包含 api 密钥

<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?key=api_key&libraries=places&callback=ActivatePlacesSearch">
Run Code Online (Sandbox Code Playgroud)

我在项目目录中使用了 .env 文件来隐藏文件中的敏感信息settings.py。如何使用 .env 文件从模板中隐藏我的 api 密钥?

Hen*_*ody 11

.env文件中定义一个变量,例如:

GOOGLE_MAPS_API_KEY="your_key"
Run Code Online (Sandbox Code Playgroud)

然后在myproject/settings.py

GOOGLE_MAPS_API_KEY = os.environ.get('GOOGLE_MAPS_API_KEY')
Run Code Online (Sandbox Code Playgroud)

然后在您的views.py文件中:

from django.conf import settings

def my_view(request):
    context = {
        'api_key': settings.GOOGLE_MAPS_API_KEY
    }
    return render('template.html', context)
Run Code Online (Sandbox Code Playgroud)

然后您可以api_key在模板中访问。

注意(感谢评论中的 trixn):确保该.env文件包含在您的.gitignore文件中,以便它不会被签入源代码管理并泄漏您的令牌。如果您使用过.gitignorePython标准,则它应该已经包含在内。

  • 但是不要忘记通过将 .env 文件添加到 .gitignore 文件来忽略它。否则它仍然会被检入并泄漏您的令牌。 (3认同)