Djangoは、エラーが発生したときに多くの情報を出してくれる
Djangoは、エラーが発生したときに非常に多くの情報を提供してくれます。
これは、開発段階では非常にありがたいことです。
例えば、リクエストを送ったurlがurlpatternにマッチしない場合は、このようなエラーを出してくれます。
グレーのエラーを見てみましょう。
ここでは、urls.pyファイルの中にあるurlpatternと、実際にリクエストを受けたurlを照らし合わせたけど、どれにもマッチしなかった。
と言ってます。
そして、実際にurlpatternsに書いてあるurlの種類が書かれています。
具体的にはこのようなコードです。
1.admin/
2.radio/[name='radio']
3.topsecret/[name='secret']
ここで注目したいのは、3番目です。これは秘密のurlで、このurlを知っている人にしかアクセスできないようなページにしようとしていたのですが、DEBUG=Trueにすることで、その情報が見えてしまっています。
そうすると、ユーザーはドメイン名/topsecret/というurlにアクセスすることで、秘密のページの中身を見ることができるようになってしまうのです。
これは一つの例ですが、こういったリスクがあるので、公開前にはDEBUG=Falseにする必要があるのです。
更に詳細な情報が出てしまう場合もあります。
djangoでhttpresponseの設定が間違っている場合をみてみましょう。
この場合、このようなエラー画面が表示されます。
これは実際に表示されるエラーの一部です。具体的には、setings.pyの内容や、セッションの情報、クッキーの情報などが書かれており、そういったデータが第三者によって簡単に確認できてしまいます。
このように、DEBUG=Trueにすると、エラーが発生したときに多くの情報が第三者によって確認できてしまいます。
逆の考えをすると、DEBUGモードであればどういった情報が見れるのか確認できると考えると、開発を進めるうえで非常に役に立つといえるでしょう。