大家好~我是Willis,今天又要介紹網頁錯誤處理囉,GO ! GO ! ⁽⁽◟(∗ ˊωˋ ∗)◞ ⁾⁾
Flask中發生錯誤時,會返回一個HTTP狀態碼。狀態碼400-499表示客戶端的請求數據或者與之相關的錯誤,500-599表示服務器或應用本身的錯誤。
代表著服務器找不到請求資源,在瀏覽器中意味著無法識別URL,在API中意味著端點有效但資源本身不存在。
@app.errorhandler(狀態碼)
把 Day16 文章的專案架構拿來使用吧
程式碼 app.py
from flask import Flask, render_template
app = Flask(__name__)
app.config["DEBUG"] = True
@app.route("/")
def index():
return render_template('index.html') # 根目錄首頁
@app.errorhandler(404)
def page_not_found(error):
return 'This page does not exist', 404 # 錯誤回傳
if __name__ == "__main__":
app.run()
abort(狀態碼)
把 Day17 文章的專案架構拿來使用吧
程式碼 app.py
from flask import Flask, request, render_template, abort
# 導入模組 request, render_template, abort
app = Flask(__name__)
app.config["DEBUG"] = True
@app.route('/')
def login():
return render_template('login.html')
@app.route("/hello", methods=['GET', 'POST'])
def hello():
if request.method == 'POST':
if request.values['username'] == "Willis":
return 'Hello ' + request.values['username']
else:
abort(404) # 產生錯誤404
@app.errorhandler(404)
def page_not_found(error):
return 'This username {} does not exist'.format(request.values['username']), 404
if __name__ == '__main__':
app.run()
username : Willis 執行結果
username : test 執行結果
app.py
from flask import Flask
# 導入模組 request, render_template, abort
import werkzeug # 導入模組werkzeug
app = Flask(__name__)
app.config["DEBUG"] = True
class InsufficientStorage(werkzeug.exceptions.HTTPException): # 自訂非標準HTTP錯誤代碼:1000
code = 1000
description = 'Not enough storage space.'
def handle_bad_request(error): # 錯誤註冊
return '錯誤代碼:1000', 1000
app.register_error_handler(InsufficientStorage, handle_bad_request)
@app.route('/')
def login():
raise InsufficientStorage() # 錯誤訊息
if __name__ == '__main__':
app.run()
https://dormousehole.readthedocs.io/en/latest/errorhandling.html
今天的Flask網頁錯誤處理就到這裡囉 ~ 下次見囉 ! ヾ(´︶`*)ノ♬