【问题标题】:Django `SECRET_KEY` settingsDjango `SECRET_KEY` 设置
【发布时间】:2017-04-12 21:37:12
【问题描述】:

我对 django 中的 SECRET_KEY 设置有一些“简单”的问题:

  • 它的最小、最大和推荐长度是多少?

    • 我可以留空吗?
    • 如果我使用很长的SECRET_KEY,会不会“浪费”一些?
  • 上面允许的字符是什么?

    • 是否允许不可打印的字符(包括但不限于空格)?
  • 我应该什么时候改变它?

    • 我知道当我更改它时,所有现有的cookies/sessionssignature等都会失效。
  • 是否可以从数据库(或其他来源)中检索而不是直接写在settings.py中?

【问题讨论】:

    标签: django settings secret-key


    【解决方案1】:

    Django 每次启动项目时都会生成一个SECRET_KEY,所以,不,you can't leave it blank

    SECRET_KEY 的长度始终为 50 个字符。

    没有空格。这是 Django 用来生成它的方法。

    def get_random_secret_key():
        """
        Return a 50 character random string usable as a SECRET_KEY setting value.
        """
        chars = 'abcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*(-_=+)'
        return get_random_string(50, chars)
    

    是的,您可以将其存储在其他地方,例如使用env 设置方法,例如。 g.

    当然,您可以随时查看documentation 关于SECRET_KEY 或代码sn-ps 之类的:

    除此之外,还有 creating a ticket to improve SECRET_KEY 文档的替代方案 - 如果您认为是这样的话。

    【讨论】:

    • 我知道django 在项目创建过程中会自动生成 SECRET_KEY 但当然,我可以手动编辑它。
    • 我找不到任何对 SECRET_KEY 始终为 50 个字符的引用。文档说它是一个字符串,没有额外内容,所以我认为它可以是任意长度。
    • @texnic 你检查到 Django 源代码的链接了吗?这是github.com/django/django/blob/master/django/core/management/…
    猜你喜欢
    • 2021-06-18
    • 2017-06-04
    • 1970-01-01
    • 2011-11-14
    • 2013-10-08
    • 1970-01-01
    • 2016-12-25
    • 2020-08-23
    • 2021-06-10
    相关资源
    最近更新 更多