반응형

Flask를 사용하여  Python 코드 실행하는 간단한 Rest API 예제입니다.



2023. 12. 18  최초 작성





다음 포스트를 참고하여 Flask 개발환경을 만듭니다.

 

Windows에 Visual Studio Code와 Miniconda를 사용한 Flask 개발 환경 만들기

https://webnautes.tistory.com/1939

 

MacOS( Macbook M1 )에 Visual Studio Code와 Miniconda를 사용한 Flask 개발 환경 만들기

https://webnautes.tistory.com/2243



app.py

from flask import Flask, request, jsonify
from sum import sum


app = Flask(__name__)

@app.route('/sum', methods=['GET'])
# 사용자가 웹 브라우저를 통해 /sum이라는 URL 경로에 GET 요청을 보내면, calculate_sum 함수가 호출됩니다.
def calculate_sum():
    a = request.args.get('a', type=int)
    # HTTP 요청의 쿼리 스트링에서 'a'라는 키에 해당하는 값을 추출합니다. http://127.0.0.1/sum?a=10&b=20과 같은 URL로 요청을 보냈다면, 'a' 키에 해당하는 값은 10입니다.
    # get 메소드는 문자열 값을 반환합니다. 여기서 type=int는 추출된 값을 정수형으로 변환하도록 지시합니다. 만약 'a'에 해당하는 값이 없거나 정수로 변환할 수 없는 경우, a는 None이 됩니다.

    b = request.args.get('b', type=int)

    # a 또는 b의 값이 제공되지 않으면 오류 메시지와 함께 HTTP 상태 코드 400을 반환합니다.
    if a is None or b is None:
        return jsonify({"error": "Missing parameters"}), 400

    # sum 함수(다른 파일에서 정의됨)를 사용하여 입력된 두 값의 합계를 계산합니다.
    # 계산 결과는 JSON 형식으로 클라이언트에게 반환됩니다.
    result = sum(a, b)
    return jsonify({"result": result})

if __name__ == '__main__':
    app.run(debug=True)



sum.py

 

실행할 파이썬 코드입니다. 

 

def sum(a, b):
    return a + b





터미널에서 다음처럼 flask 코드를 실행합니다.

 

export FLASK_APP=app

flask run

 




웹브라우저에서 다음 주소에 접속하여 REST API를 요청해봅니다. a의 값으로 10을 지정하고 b의 값으로 20을 지정하고 있습니다.

http://127.0.0.1:5000/sum?a=10&b=20 



이 요청에 대한 응답은 JSON 형식입니다. 웹페이지에서 다음처럼 보입니다.

 

 

반응형

문제 발생시 지나치지 마시고 댓글 남겨주시면 가능한 빨리 답장드립니다.

도움이 되셨다면 토스아이디로 후원해주세요.
https://toss.me/momo2024


제가 쓴 책도 한번 검토해보세요 ^^

+ Recent posts