1
2

More than 1 year has passed since last update.

【Python】Django でHTTPステータスコード403/404/500用の画面を作ってみた

Last updated at Posted at 2020-08-12

はじめに

Djangoの参考書で、
HTTPステータスコード403/404/500用の画面を作る と言う
セクションがあり、いざ runserver しても404エラーを起こしても
カスタマイズした404画面が表示されなかった。

DEBUG = True だと表示されない

ステータスコード403/404/500用の画面を作るには
templates ディレクトリの"直下"に
403.html 404.html 500.html を作成するだけです。

ただ、このまま runserver しても
この画面が表示されます。(作った画面と違う...)

page_not_found.png

画面下部に
You're seeing this error because you have DEBUG = True in your Django settings file. Change that to False, and Django will display a standard 404 page.
と表示されています。

DeepLで翻訳してみる。

このエラーが表示されるのは、Django の設定ファイルで DEBUG = True を設定しているからです。これを False に変更すると、Django は標準の 404 ページを表示します。

DEBUG = True だと、ダメっぽい。

DEBUG = False にしてみる

settings.py
DEBUG = True

に修正して runserver してみる。

CommandError: You must set settings.ALLOWED_HOSTS if DEBUG is False.

エラーが出てしまったので、解決する。

settings.py
DEBUG = True

ALLOWED_HOSTS = ['127.0.0.1']

ALLOWED_HOSTS = ['127.0.0.1'] を追加して
runserver してみる。

無事にカスタマイズした404画面が表示されました。

page_not_found_2.png

404.html
<h1>ページが見つかりません</h1>

参考文献

大変参考になりました。ありがとうございます。

Djangoでカスタマイズした404ページを表示する
https://djangobrothers.com/blogs/django_404_page/

1
2
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
1
2