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('/user')
def user_list():
abort(403)
- http://127.0.0.1:5000/에 접근하면 index()함수가 실행된다.
- redirect(url_for('uer_list'))의 실행으로 /user를 반환한다.
- url_for()
- 함수의 이름을 넣으면 해당 라우팅 URL을 반환해주는 함수
- user_list함수를 요청했고 해당 함수의 라우팅 url인 /user를 반환해준다
- url_for()
- user_list()함수 호출의 결과로 abort(403)함수가 호출된다.
- abort(code)
- 4XX번대 HTTP Status Code를 보내는 함수이다
-
400 : 잘못된 요청 401 : 권한 없음 403 : Forbidden, 금지됨 404 : Not Found, 찾을 수 없음 406 : 허용되지 않음 415 : 지원되지 않는 미디어 유형 429 : 너무 많은 요청, RFC 6585
- abort(code)
- app.errorhandler를 사용해 error exception을 받아 처리할 수 있다.
- 403 상태 코드를 리턴한다
결과
http://127.0.0.1:5000/ 에 접속했지만 바로 http://127.0.0.1:5000/user에 접속하게 된 것을 확인할 수 있다.
'python > Flask' 카테고리의 다른 글
[python][flask]플라스크 기초-jinja2 (0) | 2022.02.14 |
---|---|
[python][flask]플라스크 기초-템플릿(render_template) (0) | 2022.02.14 |
[python][flask]플라스크 기초-메서드(method) (0) | 2022.02.14 |
[python][flask]플라스크 기초-라우팅 (0) | 2022.02.08 |