カテゴリ: Flask 更新日: 2025/12/10

Flaskのエラーページをカスタマイズする方法!404・500ページの作り方まとめ

Flaskのエラーページをカスタマイズする方法!404・500ページの作り方まとめ
Flaskのエラーページをカスタマイズする方法!404・500ページの作り方まとめ

先生と生徒の会話形式で理解しよう

生徒

「Flaskでエラーページって自分で作ることってできますか?」

先生

「はい、Flaskでは404エラーや500エラーなどのエラーページを自分で好きなデザインにカスタマイズすることができますよ。」

生徒

「どうして自分で作ったほうがいいんですか?」

先生

「既定のエラーページはとても味気なくて分かりにくいので、ユーザーにやさしく分かりやすいページにすると、使いやすいサイトになります。それでは、Flaskでエラーページをカスタマイズする方法を学びましょう!」

1. Flaskのエラーページとは?

1. Flaskのエラーページとは?
1. Flaskのエラーページとは?

Flask(フラスク)とは、Python(パイソン)というプログラミング言語で作られた、Webアプリケーションを作るための便利な道具です。Flaskでは、Webページで何か間違いがあったときに「エラーページ」というものが表示されます。

たとえば、存在しないページを開こうとしたときに表示される「404 Not Found」や、アプリに不具合が起きたときに出る「500 Internal Server Error」がその代表例です。

このようなエラーページは、初期状態ではとてもシンプルで機械的な表示になっています。しかし、それを自分の好きなデザインやメッセージに変えることができるのが「エラーページのカスタマイズ」です。

2. なぜエラーページをカスタマイズするのか?

2. なぜエラーページをカスタマイズするのか?
2. なぜエラーページをカスタマイズするのか?

エラーページをカスタマイズすることで、Webアプリを使ってくれている人が混乱せず、安心して次の操作に進むことができます。

  • ユーザーにやさしいメッセージを表示できる
  • 見た目を統一できる(ブランド感を出せる)
  • どんなトラブルが起きたのかを分かりやすく説明できる

たとえば、「ページが見つかりません」と日本語で表示してあげるだけで、初心者の人でも状況が理解しやすくなります。

3. Flaskでエラーページを作る基本構文

3. Flaskでエラーページを作る基本構文
3. Flaskでエラーページを作る基本構文

Flaskでは、@app.errorhandler()という仕組みを使って、特定のエラーが起きたときに別のページを表示するように設定できます。下記は、404エラーと500エラーのカスタムページを設定する基本の書き方です。


from flask import Flask, render_template

app = Flask(__name__)

@app.errorhandler(404)
def page_not_found(error):
    return render_template("404.html"), 404

@app.errorhandler(500)
def internal_server_error(error):
    return render_template("500.html"), 500

このように書くことで、404エラーや500エラーが発生したときに、それぞれのテンプレートファイル(HTMLファイル)を表示してくれるようになります。

4. HTMLでエラーページを作ってみよう

4. HTMLでエラーページを作ってみよう
4. HTMLでエラーページを作ってみよう

Flaskでは、templatesというフォルダの中にHTMLファイルを置いて、見た目を整えることができます。以下は、404.htmlというファイルの例です。


<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <title>ページが見つかりません</title>
</head>
<body>
    <h1>404 エラー</h1>
    <p>申し訳ありません。お探しのページは見つかりませんでした。</p>
    <a href="/">トップページへ戻る</a>
</body>
</html>

同じように、500.htmlも作成しておくと、サーバーエラーが発生したときに表示されます。500ページの例は以下です。


<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <title>エラーが発生しました</title>
</head>
<body>
    <h1>500 サーバーエラー</h1>
    <p>申し訳ありません。サーバー内部で問題が発生しました。</p>
    <a href="/">トップページへ戻る</a>
</body>
</html>

5. Flaskアプリでのエラーページ表示の流れ

5. Flaskアプリでのエラーページ表示の流れ
5. Flaskアプリでのエラーページ表示の流れ

実際の流れをもう一度整理しておきましょう。

  1. Flaskアプリで存在しないURLにアクセスされると、Flaskが「404エラーだ」と判断します。
  2. @app.errorhandler(404)が動作して、404.htmlというファイルを使ってページを表示します。
  3. 同じように、サーバーエラー(プログラムのミスなど)が起きたときは、500.htmlが使われます。

つまり、Flaskに「どのエラーのときに、どのテンプレートを表示するか」を教えるだけで、誰でも簡単にオリジナルのエラーページが作れるのです。

6. より使いやすいカスタマイズの工夫

6. より使いやすいカスタマイズの工夫
6. より使いやすいカスタマイズの工夫

エラーページをより使いやすくするためには、次のような工夫がおすすめです。

  • トップページへのリンクをつける
  • 優しい言葉で案内する(例:「ページが見つかりません」より「お探しのページは見つかりませんでした」など)
  • サイトのデザインに合わせた色やレイアウトにする
  • エラー内容を記録する(ログに残す)※初心者のうちは無理にやらなくてもOK

ユーザーが迷わないように、しっかりと案内してあげることが大切です。

7. テストで確認してみよう

7. テストで確認してみよう
7. テストで確認してみよう

カスタムエラーページを作ったら、実際に動作確認してみましょう。以下のような確認をしてみるとよいです。

  • 存在しないURL(例:/not-found)を開いて、404ページが表示されるか確認
  • わざとエラーを起こして、500ページが表示されるか確認

テストはとても大事な作業なので、失敗しても落ち着いて原因を確認しながら進めていきましょう。

まとめ

まとめ
まとめ

Flaskでエラーページを自分で整える作業は、見た目を変えるだけではなく、使う人が安心して操作を続けられるように導くための大切な工夫になります。とくに 404 や 500 といった代表的なエラーは、初心者の人にとってはとても分かりにくい状況です。そのため、ただ英語の数字だけが表示される既定の画面では、何が起きたのか理解できず、そのまま不安を感じてページを離れてしまうことも珍しくありません。そこで、開発者がやさしい言葉に置き換えたり、案内リンクを付けたり、落ち着いて行動できるような文章を添えたりするだけで、サイトの印象は大きく変わります。また、エラーページはサイト全体の雰囲気を統一するためにも役に立ちます。普段のページと色やレイアウトを合わせておくことで、アプリの世界観が途切れず、違和感を与えることもありません。こうした小さな工夫の積み重ねが、丁寧に作られたアプリという信頼につながり、再訪率を高める効果も期待できます。

さらに、Flaskのエラーハンドリングは特別な知識がなくても書けるので、初心者でも取り組みやすい点が魅力です。デコレーターを付けて、特定の数字に対応したテンプレートを返すだけで、基本的な構成が完成します。テンプレート側も、ふだんのHTMLと同じように装飾できるため、普段学んできた技術がそのまま活用できます。404 と 500 の二種類を作るだけでも、アプリの使いやすさは大きく向上し、状況を説明する文章を増やせばさらに分かりやすい案内として機能します。また、余裕が出てきたら、不正アクセスや予期しない例外が起こったときのログを整理したり、ユーザー向けと管理者向けでメッセージを切り替えたりと、応用的な工夫も考えられるようになります。

エラーは必ず起きるものであり、完全に防ぐことはできません。しかし、起きたときにどう受け止めてもらうか、どんな案内を示すかをあらかじめ準備しておくことで、問題の影響を最小限に抑えられます。エラーページを通してユーザーを安心させる姿勢は、アプリを継続して使ってもらうためにとても重要な考え方です。こうした考えはFlaskに限らず、他のフレームワークやサービスを扱うときにも活かされます。今回の学びをきっかけに、今後作るアプリでも同じような気づかいを応用してみると、より使いやすく温かいサイトに近づいていきます。

サンプルコードで振り返ろう

下記は今回の学びをまとめた簡単な記述例です。


from flask import Flask, render_template

app = Flask(__name__)

@app.errorhandler(404)
def page_not_found(error):
    return render_template("404.html"), 404

@app.errorhandler(500)
def internal_server_error(error):
    return render_template("500.html"), 500

<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <title>ページが見つかりません</title>
</head>
<body>
    <h1>404 エラー</h1>
    <p>お探しのページは存在しないようです。</p>
    <a href="/">トップへ戻る</a>
</body>
</html>

こうしたテンプレートを準備しておけば、アプリ全体の印象がまとまり、利用者にも親切でわかりやすい案内を届けられます。さらに、色やレイアウトを少し工夫するだけで、サイトの雰囲気を大きく変えることもできます。細やかな表現を調整しながら、より使いやすく美しい構成を完成させていきましょう。

先生と生徒の振り返り会話

生徒

「今日の説明で、エラーページってただの数字じゃなくて、使う人を守るための案内なんだって分かりました。」

先生

「その通りです。どんなアプリでも必ずエラーは起きます。だからこそ、その瞬間にどんな言葉を届けるかがとても大切になります。」

生徒

「思っていたより簡単に書けるのもありがたいです。テンプレートで自由に装飾もできるので、自分のサイトにあった雰囲気にもできますね!」

先生

「そうですね。今回覚えた仕組みはFlaskだけでなく、他の開発にも必ず役に立ちます。ぜひ自分のアプリの色に合わせて、やさしい案内ができるページを作ってみてください。」

この記事を読んだ人からの質問

この記事を読んだ人からの質問
この記事を読んだ人からの質問

プログラミング初心者からのよくある疑問/質問を解決します

Flaskでエラーページをカスタマイズするにはどうすればいいですか?

Flaskでは、@app.errorhandlerを使うことで、404エラーや500エラーなどのエラーページを自分の好きなデザインに変更できます。エラーコードごとにHTMLテンプレートを用意して表示させます。
カテゴリの一覧へ
新着記事
New1
Flask
Flaskでデータベースエラーを処理する方法!初心者にもわかる例外の使い方
New2
Flask
FlaskでリダイレクトやURL生成を行う方法!便利な関数の使い方を解説
New3
Flask
FlaskでPOSTリクエストを受け取る方法!初心者でもわかるJSONデータの受け取り方
New4
Flask
Flask‑Mailの使い方!アプリからメールを送信する基本方法を解説
人気記事
No.1
Java&Spring記事人気No1
Django
Django環境構築の全手順を完全解説!初心者でも迷わないPython・Djangoセットアップガイド
No.2
Java&Spring記事人気No2
Django
DjangoとFlaskの違いを完全比較!初心者でもわかるPythonフレームワーク入門
No.3
Java&Spring記事人気No3
Python
Pythonでリストをコピーする方法!copy()・スライス・list()の使い方を比較
No.4
Java&Spring記事人気No4
Python
Pythonの文字列を1文字ずつ処理する方法!for文やlist化の活用例
No.5
Java&Spring記事人気No5
Flask
FlaskアプリをNginx + Gunicornで本番運用する方法!初心者でもわかるデプロイ構成の基本
No.6
Java&Spring記事人気No6
Python
PythonでHello Worldを表示するには?初心者向けに最初の1行を実行してみよう
No.7
Java&Spring記事人気No7
Python
Pythonのmatch文(パターンマッチング)とは?switch文の代替としての使い方をやさしく解説
No.8
Java&Spring記事人気No8
Flask
FlaskアプリのSECRET_KEYの設定方法を完全ガイド!初心者でもわかるセキュリティ対策