【问题标题】:Get Django ALLOWED_HOSTS env. variable formated right in settings.py获取 Django ALLOWED_HOSTS 环境。在 settings.py 中正确格式化的变量
【发布时间】:2020-06-10 03:09:55
【问题描述】:

我正面临以下问题。我的 .env 文件包含如下一行:

export SERVERNAMES="localhost domain1 domain2 domain3" <- exactly this kind of format

但是名为SERVERNAMES 的变量在我的部署的多个位置多次使用,因此我不能将其声明为settings.py 可以立即使用的兼容字符串列表。除此之外,我不喜欢为基本相同的东西设置多个 .env 变量。所以我的问题是如何格式化我的ALLOWED_HOSTS 以与我的settings.py 兼容。这样的事情似乎不起作用:

ALLOWED_HOSTS = os.environ.get('SERVERNAMES').split(',')

感谢和亲切的问候

【问题讨论】:

  • .split(' ') 能解决您的问题吗?
  • 是的,非常感谢您的提示。

标签: python django environment-variables


【解决方案1】:

只需使用空格而不是逗号作为分隔符来拆分您的 SERVERNAMES 变量

ALLOWED_HOSTS = os.environ.get('SERVERNAMES').split(' ')

【讨论】:

    【解决方案2】:

    昏迷正在使它成为一个字符串

    env = "localhost domain1 domain2 domain3"
    
    envs = envs.split(',')
    
    print(envs)
    
    ['localhost domain1 domain2 domain3']
    

    而只是用空格分割字符串,python 把它变成一个字符串列表

    env = "localhost domain1 domain2 domain3"
    
    envs = env.split() # By default `str.split()` splits upon spaces
    
    print(envs)
    
    ['localhost', 'domain1', 'domain2', 'domain3']
    
    

    【讨论】:

      猜你喜欢
      • 2022-11-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-23
      • 2018-12-25
      • 2019-04-11
      • 2016-03-11
      • 2013-12-04
      相关资源
      最近更新 更多