Djangoで存在しないURLにアクセスした場合のビューを生成する


Pocket

タイトルの通りで、存在しない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を確認することができます。
django_404_page

 
ちなみに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

以上です。

 
 

Leave a Comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>