iT邦幫忙

2024 iThome 鐵人賽

DAY 29
0

Flask 提供了簡單的方法來處理錯誤狀況,例如當用戶訪問一個不存在的路由時,就會觸發 404 錯誤(頁面未找到)。接下來要介紹如何在 Flask 中處理常見錯誤,並自定義錯誤頁面。我們就先拿 404 錯誤當範例。
我們先修改 app.py 讓它可以處理 404 錯誤:

from flask import Flask, render_template

app = Flask(__name__)

@app.route('/')
def home():
    return '這是首頁'
    
@app.errorhandler(404)
def page_not_found(e):
    return render_template('404.html'), 404

if __name__ == '__main__':
    app.run(debug=True)

使用 @app.errorhandler(404) 來定義一個處理 404 錯誤的函數,當 404 錯誤發生時,就會顯示 404.html 這個模板。

在 templates 資料夾中新增 404.html ,這是一個可以自定義的錯誤頁面:

<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>頁面未找到</title>
</head>
<body>
    <h1>404 - 頁面未找到</h1>
    <p>抱歉,您訪問的頁面不存在。</p>
    <a href="/">返回首頁</a>
</body>
</html>

這樣以後當用戶訪問一個不存在的頁面時,就會顯示我們自定義的錯誤頁面,而不再是 Flask 的預設頁面。

除了 404 錯誤,我們還可以處理其他的 HTTP 錯誤,例如 500(伺服器錯誤)。同樣的,我們可以使用 @app.errorhandler 來捕捉這些錯誤並顯示對應的錯誤頁面:

@app.errorhandler(500)
def internal_server_error(e):
    return render_template('500.html'), 500

然後再去創建一個 500.html 的模板來顯示伺服器錯誤的相關資訊就行了。


上一篇
Day28 Flask(五)
下一篇
Day30 結語
系列文
少年Py 的漂流日記- 第一次相遇30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言