フルスタックチャンネル
サインアップサインアップ
ログインログイン
利用規約プライバシーポリシーお問い合わせ
Copyright © All rights reserved | FullStackChannel
解決済
環境変数について
Django
Python
データベース
atnek
2022/09/24 12:56

実現したいこと

環境変数を利用したいのですが、上手くいきません、、、

発生している問題

環境変数を用いようとすると、下記のエラーを吐き、実行できなくなります。

CommandError: You must set settings.ALLOWED_HOSTS if DEBUG is False.

ソースコード

BASE_DIR = Path(__file__).resolve().parent.parent

env = environ.Env()
environ.Env.read_env()
print(env.str('SECRET_KEY'))

# Quick-start development settings - unsuitable for production
# See https://docs.djangoproject.com/en/2.2/howto/deployment/checklist/

# SECURITY WARNING: keep the secret key used in production secret!
SECRET_KEY = 'シークレットキー'

# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = True

ALLOWED_HOSTS = ['*']

*print(env.str('SECRET_KEY'))を消すと普通に実行されます。
また、シークレットキーには
SECRET_KEY=シークレットキー
という感じで代入されています。

回答 3件
login
回答するにはログインが必要です
はる@講師
約3年前

こちらで実行できるようになるかと思います。

env = environ.Env()
env.read_env(os.path.join(BASE_DIR, '.env'))
SECRET_KEY = env('SECRET_KEY')    
1
atnek
約3年前

関係があるのか分かりませんが、

SECRET_KEYの値が$から始まるので、
.env内の値から先頭の$を除去し

SECRET_KEY = '$'+env('SECRET_KEY')

とした所、動作しました。

正しい対応なのかわかりませんが、ひとまずエラーは吐かなくなりました。。
ちょっとよく分からない事がいっぱい起きますね。笑

atnek
約3年前

やはり、

CommandError: You must set settings.ALLOWED_HOSTS if DEBUG is False.

のエラーを吐きます、、、