반응형
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
반응형
'파이썬' 카테고리의 다른 글
파이썬 strptime을 사용하여 오프셋이있는 타임 스탬프를 datetime obj로 변환 (0) | 2021.02.09 |
---|---|
파이썬 문자열에서 한 문자 변경 (0) | 2021.02.08 |
파이썬 Pandas DataFrame에서 히트 맵 만들기 (0) | 2021.02.08 |
파이썬 XML 파일 읽기 및 Python에서 속성 값 가져 오기 (0) | 2021.02.08 |
파이썬에서 time () 객체를 초기화하는 방법 (0) | 2021.02.08 |
댓글