Django`SECRET_KEY`设置

时间:2016-11-29 01:57:51

标签: django settings secret-key

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

  • 它的最小,最大和建议长度是多少?

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

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

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

1 个答案:

答案 0 :(得分: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设置方法,例如:克。

当然,您可以随时查看关于SECRET_KEY的{​​{3}}或以下代码段:

除此之外,还有startproject code SECRET_KEY文档的替代方案 - 如果您认为是这种情况。