데이터 전달과정 (flask)

박지윤·2025년 12월 15일

아래는 작성된 플라스크 예시.

from flask import Flask, request, jsonify

app = Flask(__name__)

# ------------------------------------------------------------------
# 1. URL과 메서드 매칭 ('/note/send' 주소로 'POST' 요청이 오면 실행)
# ------------------------------------------------------------------
@app.route('/note/send', methods=['POST'])
def send_note():
    try:
        # ----------------------------------------------------------
        # 2. 데이터 수신 (택배 상자 뜯기)
        # JS에서 보낸 JSON 데이터를 파이썬 딕셔너리로 변환합니다.
        # ----------------------------------------------------------
        data = request.get_json() 

        # 3. 데이터 확인 (콘솔에 찍어보기)
        print("--- 받은 데이터 ---")
        print(data) 
        print(f"제목: {data['title']}")
        print(f"내용: {data['content']}")

        # ----------------------------------------------------------
        # 4. 변수 추출 (사용하기 편하게 꺼내기)
        # ----------------------------------------------------------
        sender_idx = data.get('sender_idx')
        receiver_idx = data.get('receiver_idx')
        title = data.get('title')
        content = data.get('content')

        # ----------------------------------------------------------
        # 5. DB 저장 로직 (아까 만든 쿼리 실행)
        # ----------------------------------------------------------
        # 예: insert_note(sender_idx, receiver_idx, title, content)
        # (여기서 DB에 INSERT가 수행됩니다)
        
        # 6. 결과 응답 (영수증 써주기)
        return jsonify({"message": "성공적으로 전송되었습니다.", "status": "success"}), 200

    except Exception as e:
        # 에러 발생 시
        print(f"에러 발생: {e}")
        return jsonify({"message": "서버 에러가 발생했습니다."}), 500

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

Step-by-Step

1. JS에서 데이터 전송 (JSON)

 const payload = {
            sender_idx: 1,
            receiver_idx: 2,
            title: titleValue,
            content: contentValue
        };

2. 파이썬이 데이터를 받음 (request)

파이썬의 request 객체는 들어온 요청을 붙잡습니다. 하지만 아직은 그냥 텍스트 덩어리인 상태이다.

3. 파싱 .json -> 딕셔너리형태 (request.get_json())

이때 request.get_json() 이 함수가 실행되면 텍스트였던 JSON 이 파이썬의 딕셔너리 형태로 변환(파싱)된다.

변환 전 (JSON 문자열): "{ 'title': '안녕' }"
변환 후 (Python 딕셔너리): {'title': '안녕'}

이제 파이썬은 이 데이터를 data['title'] 처럼 키(Key)를 이용해 꺼낼 수 있게 된다.
위에서 print(data)콘솔에서 찍히는 모양

--- 받은 데이터 ---
{'sender_idx': 1, 'receiver_idx': 2, 'title': '테스트 제목', 'content': '테스트 내용입니다'}
제목: 테스트 제목
내용: 테스트 내용입니다

3. 응답 딕셔너리형태 -> .jsonify

처리가 다 끝나면 파이썬도 자바스크립트에게 결과를 알려줘야 합니다. jsonify(...) 함수를 쓰면 파이썬 딕셔너리를 다시 JSON 문자열로 바꿔서 자바스크립트의 result 변수로 쏙 넣어줍니다.

0개의 댓글