404ページを自作する方法【仕組みも合わせて解説】
djangoでコードを書いていく中で404エラーページを自分で作りたいことがあるかもしれません。
djangoは404ページを簡単に表示する機能が備え付けられているのですが、だからこそ、仕組みを理解することが難しくなっている面もあります。
そこで今回は、404ページを作る方法について見ていくとともに、その仕組みもしっかりと解説していきます。
404ページを自作する方法
404ページを自作する方法は、DIRで設定したフォルダに404.htmlファイルを作るだけです。
htmlファイルなどのhtmlファイルを保存する場所について理解したい方は、templatesフォルダを作る場所を解説という記事も合わせて読んでみてください。
初期設定コードを使いますので、DIRはBASE_DIRのtemplatesフォルダになります。
つまり、manage.pyファイルが入っているフォルダの中に新規で作ったtemplatesフォルダの中に404ファイルを作っていきます。
ファイル名を404.htmlにする理由
ここで、ファイル名を404.htmlにする理由についてお伝えしていきます。
djangoでは、url.pyファイルでリクエストを受けたurlに対し、どのviewを返すのか指定をします。
そして、djangoではデフォルトで、リクエストを受けたurlがurls.pyの内容と合致しなかった場合、django.views.defaults.page_not_found()というviewを返すように設定されています。
このpage_not_found()viewのデフォルトの設定は以下の通りです。
コードdefaults.page_not_found(request, exception, template_name='404.html')
template_nameのところで404.htmlファイルが指定されていることを確認しましょう。
つまり、djangoはデフォルトで、404エラーが発生したときには404.htmlファイルを呼び出すように設定されているのです。
ですので、DIRで指定したフォルダの中で404.htmlファイルを作ることで、そのファイルが優先的に呼び出されるようになるという仕組みです。
結局のところ、djangoはurls.pyでリクエストを受けたurlに合致するかを確認し、合致した内容に合わせたviewを返しているだけである。
と考えると、今後のdjangoの勉強においても理解がぐっと深まっていくかもしれません。
~Django無料講義~のご案内
Code for Djangoが、4時間超の無料Django講義をはじめました
- ・本を出版したCode for Djangoの
製作者が作ったサイトです。 - ・Code for Djangoの内容も、
動画で詳しく解説しています。 - ・動画は順次ふやしていきますので、
ただで学び続けることが可能です。 - ・Djangoの効率的なスキルアップに、
是非お役立て下さい。