タイトルの通りで、存在しないURL(404)にアクセスされた場合に表示するページを作成する方法です。
・Django1.7
やり方
templatesフォルダ直下に404.htmlファイルを作るだけでいい。
とても簡単です。これだけで、存在しないUrlにアクセスされた場合に、自動的に404.htmlを読んでくれます。
ERROR:500(サーバーエラー),403(観覧が禁止されている)場合も同じ方法で、それぞれ500.html,403.htmlを準備することで対応可能なようです。
ただし500.htmlには、空のContextインスタンスが渡されるようなので注意が必要です。
※ドキュメントによると、さらなるエラーを防ぐためとのこと
<参考>
https://docs.djangoproject.com/en/1.7/ref/views/#the-404-page-not-found-view
https://docs.djangoproject.com/en/1.7/topics/http/views/#the-http404-exception
確認方法
ローカル開発環境で404ページの表示を確認する方法です。
通常だと下記のような表示になりますが、settings.pyのDEBUGをFalseにすることで、404.htmlを確認することができます。
ちなみにOpenShiftの標準Djangoアプリだと下記のようになっています。
settings.pyから抜粋 if ON_OPENSHIFT: DEBUG = bool(os.environ.get('DEBUG', False)) if DEBUG: print("WARNING: The DEBUG environment is set to True.") else: DEBUG = True #ここをFalseにすればいい TEMPLATE_DEBUG = DEBUG
以上です。