사용자의 API 요청을 위한 정보를 제공할 수 없는 경우 사용자에게 알려주는 에제입니다.
Flask의 Quickstart 문서를 보며 진행한 과정을 작성한 글입니다.
https://flask.palletsprojects.com/en/2.0.x/quickstart/
부족한 부분이나 이상한 부분이 있을 수 있습니다.
개발 환경 구축은 다음 포스트를 참고하세요
Windows 10 환경에서 Visual Studio Code와 Miniconda를 사용한 Flask 개발 환경 만들기
https://webnautes.tistory.com/1522
Miniconda를 설치하지 않고 pip install flask 명령으로 해도 상관은 없습니다.
2021. 12. 27 최초작성.
log_example.py로 저장합니다.
from flask import Flask, jsonify, request app = Flask(__name__) class InvalidAPIUsage(Exception): status_code = 400 def __init__(self, message, status_code=None, payload=None): super().__init__() self.message = message if status_code is not None: self.status_code = status_code self.payload = payload def to_dict(self): rv = dict(self.payload or ()) rv['message'] = self.message return rv @app.errorhandler(InvalidAPIUsage) def invalid_api_usage(e): return jsonify(e.to_dict()) def get_user(user_id): print(user_id) if int(user_id) == 420: return {'user_id': 'webnautes'} else: return None # 사용자 정보를 보여주는 API 입니다. # # 다음처럼 호출합니다. /api/user?user_id=420 # user_id가 420인 경우에만 정상적으로 사용자의 정보를 보여줍니다. # 그외의 경우에는 사용자를 찾을 수 없다는 메시지를 보여줍니다. # # user_id를 지정하지 않은 경우에는 지정되지 않았다는 메시지를 보여줍니다. @app.route("/api/user") def user_api(): user_id = request.args.get("user_id") if not user_id: raise InvalidAPIUsage("No user id provided!") user = get_user(user_id=user_id) if not user: raise InvalidAPIUsage("No such user!", status_code=404) return jsonify(user) |
다음처럼 실행합니다.
set FLASK_APP=log_example
flask run
웹브라우저에서 http://127.0.0.1:5000/api/user?user_id=420 로 접속시(user_id가 420으로 지정한 경우) 정상적으로 사용자 정보를 보여줍니다.
http://127.0.0.1:5000/api/user?user_id=111 로 접속시( user_id가 420이 아닌 경우) 해당 유저가 없다는 메시지를 JSON 포맷으로 보여줍니다.
user_id 값 없이 http://127.0.0.1:5000/api/user 로 접속하면 user_id가 지정되지 않았다는 메시지를 보여줍니다.
'WEB > Flask' 카테고리의 다른 글
MacOS( Macbook M1 )에 Visual Studio Code와 Miniconda를 사용한 Flask 개발 환경 만들기 (2) | 2023.12.17 |
---|---|
Windows에 Visual Studio Code와 Miniconda를 사용한 Flask 개발 환경 만들기 (0) | 2023.10.12 |
Flask 강좌 9 - Message Flashing (0) | 2021.12.27 |
Flask 강좌 8 - 세션(Sessions)과 로그인 구현 (0) | 2021.12.26 |
Flask 강좌 7 - JSON 응답하기 (0) | 2021.12.25 |
시간날때마다 틈틈이 이것저것 해보며 블로그에 글을 남깁니다.
블로그의 문서는 종종 최신 버전으로 업데이트됩니다.
여유 시간이 날때 진행하는 거라 언제 진행될지는 알 수 없습니다.
영화,책, 생각등을 올리는 블로그도 운영하고 있습니다.
https://freewriting2024.tistory.com
제가 쓴 책도 한번 검토해보세요 ^^
그렇게 천천히 걸으면서도 그렇게 빨리 앞으로 나갈 수 있다는 건.
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!