亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Flask 自定義錯誤界面 ?

Flask 自定義錯誤界面 ?

繁花如伊 2018-11-14 19:15:34
Flask 自定義錯誤界面 
查看完整描述

1 回答

?
慕蓋茨4494581

TA貢獻1850條經驗 獲得超11個贊

lask 有一個方便的 abort() 函數,它可以通過一個 HTTP 出錯代碼退出 一個請求。它還提供一個包含基本說明的出錯頁面,頁面顯示黑白的文本,很樸素。
用戶可以根據錯誤代碼或多或少知道發生了什么錯誤。
常見出錯代碼
以下出錯代碼是用戶常見的,即使應用正常也會出現這些出錯代碼:
404 Not Found
這是一個古老的“朋友,你使用了一個錯誤的 URL ”信息。這個信息出現得如此 頻繁,以至于連剛上網的新手都知道 404 代表:該死的,我要看的東西不見了。 一個好的做法是確保 404 頁面上有一些真正有用的東西,至少要有一個返回首頁 的鏈接。
403 Forbidden
如果你的網站上有某種權限控制,那么當用戶訪問未獲授權內容時應當發送 403 代碼。因此請確保當用戶嘗試訪問未獲授權內容時得到正確的反饋。
410 Gone
你知道 “404 Not Found” 有一個名叫 “410 Gone” 的兄弟嗎?很少有人使用這個 代碼。如果資源以前曾經存在過,但是現在已經被刪除了,那么就應該使用 410 代碼,而不是 404 。如果你不是在數據庫中把文檔永久地刪除,而只是給文檔打 了一個刪除標記,那么請為用戶考慮,應當使用 410 代碼,并顯示信息告知用戶 要找的東西已經刪除。
500 Internal Server Error
這個代碼通常表示程序出錯或服務器過載。強烈建議把這個頁面弄得友好一點, 因為你的應用 遲早 會出現故障的(參見 記錄應用程序錯誤 )。
出錯處理器
一個出錯處理器是一個函數,就像一個視圖函數一樣。與視圖函數不同之處在于出錯處理器 在出現錯誤時被調用,且傳遞錯誤。錯誤大多數是一個 HTTPException ,但是有一個例外:當出現內部服務器錯誤 時會把異常實例傳遞給出錯處理器。
出錯處理器使用 errorhandler() 裝飾器注冊,注冊時應提供異常的 出代碼。請記住, Flask 不會 為你設置出錯代碼,因此請確保在返回響應時,同時提供 HTTP 狀態代碼。
以下是一個處理 “404 Page Not Found” 異常的示例:
from flask import render_template
@app.errorhandler(404)
def page_not_found(e):
return render_template('404.html'), 404
示例模板:
{% extends "layout.html" %}
{% block title %}Page Not Found{% endblock %}
{% block body %}
<h1>Page Not Found</h1>
<p>What you were looking for is just not there.
<p><a href="{{ url_for('index') }}">go somewhere nice</a>
{% endblock %}




查看完整回答
反對 回復 2018-12-09
  • 1 回答
  • 0 關注
  • 1019 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號