LoginSignup
0
0

More than 1 year has passed since last update.

DjangoのDEBUGにはboolを渡そう

Posted at

はじめに

AWS環境にデプロイする際に、SSMParameterから取得した値を設定していたら沼ったので記事にしました。
誰かの助けになれば幸いです🙏

DEBUGモードとは?

settings.py にある
こいつのことである

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

DEBUG=True の場合

エラー時に詳細な情報が表示される
METAデータがすべて表示される(一応パスワード系の項目は伏せ字になるがそれ以外は全部見れる)

95e6a79e41ea-20230427.png

DEBUG=False の場合

汎用的なエラーにまとめられ詳細は表示されない

# SECURITY WARNING: don't run with debug turned on in production!
と書いてあるように、本番環境で丸見えはまずいのでFalseにする必要がある

スクリーンショット 2023-04-27 10.04.01.png

本題

AWS環境(AppRunner)にデプロイするぞ!
というタイミングで下記のように設定を行った

スクリーンショット 2023-04-27 10.06.31.png

ところがDEBUG=Trueのままになっていて原因の特定に時間がかかった

解決案

SSMParameterから取得したDEBUGはstrなのでboolに変換してあげる

DEBUG = bool(strtobool(env('DEBUG'))) if type(
    env('DEBUG')) is str else env('DEBUG')

文字列FalseはTrueと判定される

DEBUG = "False"
if DEBUG:
    print('debug mode on')
else:
    print('debug mode off')

# debug mode on がprintされる

まとめ

沼るときって意外としょーもない理由だったりするなぁと痛感しました

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0