본문 바로가기
파이썬

파이썬 Flask-사용자 지정 abort () 코드를 만드는 방법은 무엇입니까?

by º기록 2021. 2. 8.
반응형

Flask에는 abort () 를 사용하거나 오류가 실제로 발생했을 때 좋은 오류 처리기가 있습니다.

Flask 문서에는 오류 404 처리기에 대한 예가 있습니다.

@app.errorhandler(404)
def not_found(error):
    return render_template('404.html'), 404

그래서 다음과 같은 사용자 지정 오류 코드를 만들려고했습니다.

if False:
    abort(777)

@app.errorhandler(777)
def something_is_wrong(error):
    return render_template('777.html'), 777

하지만 작동하지 않고 Werkzeug 디버거가 말합니다 : LookupError : no exception for 777


if False:
    return '777 error', 777

불행히도 위의 코드는 흰색 화면을 생성하지만 Werkzeug 디버거도 나오지 않습니다.

나는 단순히 할 수 있다는 것을 안다.

if False:
    return render_template('777.html')

하지만 abort () 를 사용하면 코드가 더 깔끔해집니다. 사용자 지정 오류 코드를 만드는 방법이 있습니까?

 

해결 방법

 


수정 : Werkzeug / Flask에 상태 코드 추가

import werkzeug.exceptions as ex
from flask import Flask, abort

class PaymentRequired(ex.HTTPException):
    code = 402
    description = '<p>You will pay for this!</p>'

abort.mappings[402] = PaymentRequired

app = Flask(__name__)

@app.route('/')
def mainpage():
    abort(402)

@app.errorhandler(402)
def payme(e):
    return 'Pay me!'

app.run()

 

참조 페이지 https://stackoverflow.com/questions/12285903

 

 

반응형

댓글