본문 바로가기

개발 관련/python

[flask] 리다이렉션과 에러

다른 엔드포인트로 이동하려면 redirect() 함수를 사용한다.

에러를 발생시키고 싶으면 abort() 함수를 사용한다.

 

from flask import Flask, redirect, url_for, abort

app = Flask(__name__)

@app.errorhandler(403)
def permission_denied(error):
	return '403', 403
    
    
@app.route('/')
def index():
	return redirect(url_for('user_list'))
    
    
@app.route('/users')
def user_list():
	abort(403)

위 코드에서 url_for() 는 함수 이름을 넣으면 해당 라우팅 URL을 반환한다.

user_list를 요청했기 때문에 /users를 반환한다.

 

@app.errorhandler를 사용하면 403 error exception을 받아 처리할 수 있다.

 

app run 뒤 /users를 호출하면 다음과 같은 창을 확인할 수 있다.

403 에러가 발생했을 때, 단순하게 403 문자열을 리턴했기 때문에 403만 있는 걸 확인할 수 있다 

위와 같이 문자열을 변경했다.

잘 변경된걸 확인할 수 있다.