IPアドレスのリストを単一のローカル変数にエクスポートするには?

IPアドレスのリストを単一のローカル変数にエクスポートするには?

ALLOWED_HOSTSDjangoでは、Django WebサイトをホストできるサーバーのIPアドレスのリストを定義するには、環境変数を指定する必要があります。たとえば、

ALLOWED_HOSTS=['localhost', '127.0.0.1', '1.2.3.4']つまり、Webサーバーにローカルにログインすると、Django Webサイトにローカルにアクセスできることを意味します。ただし、1.2.3.4サーバーはグローバルにアクセスできます。開発者はしばしば環境ファイル(.envDjangoで解決など)にこの環境変数を割り当てます。

私の場合、Ubuntu Linuxサーバーでこの環境変数を設定する必要がありました。たとえば、ローカルでは次のようになります。

export ALLOWED_HOSTS=['localhost', '127.0.0.1', '1.2.3.4']

このコマンドは機能しません。このコマンドも機能しません

export ALLOWED_HOSTS="['localhost', '127.0.0.1', '1.2.3.4']"

または

export ALLOWED_HOSTS='localhost', '127.0.0.1', '1.2.3.4'

または

export ALLOWED_HOSTS="[localhost, 127.0.0.1, '1.2.3.4]"

最初と3番目のケースでは、間違った構文が原因でbashでエラーが発生します。 2番目と4番目のケースでは、Djangoは変数をまったく理解していません。はい、コマンドで可能です。

export ALLOWED_HOSTS='localhost'

Djangoはこれを理解していますが、許可されたIPアドレスは1つしかないと仮定しています。

しかし、私はIPアドレスのリストをLinux環境変数に渡す方法が必要で、Djangoがこれを理解できると確信しています。しかし、どのように?

ベストアンサー1

ALLOWED_HOSTS助けを借りて、Djangoが(リストイン)変数を解析するための良い方法は、次のように定義することです。

ALLOWED_HOSTS=localhost,127.0.0.1,myotherhost.com,etc.net

それはすべてです。スペースはありません。たとえば、Pythonライブラリはenv次のように解析できます。

allowed_hosts = env.list("ALLOWED_HOSTS"); 

おすすめ記事