왕현성
코딩발자취
왕현성
전체 방문자
오늘
어제
  • 코딩 (277)
    • Python (71)
    • Java (16)
    • MySQL (34)
    • 인공지능 (48)
      • 머신러닝 (16)
      • 딥러닝 (32)
    • 영상처리 (4)
    • Rest API (21)
    • Android Studio (25)
    • streamlit (13)
    • DevOps (22)
      • AWS (9)
      • PuTTY (5)
      • Git (4)
      • Serverless (2)
      • Docker (2)
    • IT 기술 용어 (6)
    • 디버깅 ( 오류 해결 과정 ) (17)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • ckpt_file
  • encoding='utf-8'
  • 영상처리역사
  • numpy
  • pip install labelme
  • UnboundLocalError
  • OpenCV
  • PYTHON
  • imageprocessing
  • 딥러닝
  • 컴퓨터비전
  • 영상처리
  • TensorFlow
  • alibidetect
  • labelme
  • ComputerVision
  • 기상탐사
  • 비지도학습
  • maskimage
  • alibi-detection
  • yolov8
  • labelme UnocodeDecodeError
  • tune()
  • get_long_description
  • matplotlib
  • pytorch
  • unsupervised
  • 영상기술
  • PIL
  • 의료이미징

최근 댓글

최근 글

티스토리

250x250
hELLO · Designed By 정상우.
왕현성
Rest API

API - Python으로 DB에 값 넣기 (POST)

API - Python으로 DB에 값 넣기 (POST)
Rest API

API - Python으로 DB에 값 넣기 (POST)

2023. 1. 4. 13:17
728x90
from flask import Flask
from flask_restful import Api
from config import Config

from resources.recipe import RecipeListResource

app = Flask(__name__)
# 환경변수 셋팅
app.config.from_object(Config)

api = Api(app)

# 경로와 리소스(API코드)를 연결한다.
api.add_resource(RecipeListResource, '/recipes')

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

메인 화면인 app.py의 코드는 이렇게 작성되어 있습니다.

 

DB에 값을 넣기 위한 POST 코드는 다음과 같습니다.

 

각 코드마다 주석처리가 되어있습니다.

 

class RecipeListResource(Resource) : 
    

    # API를 처리하는 함수 개발
    # HTTP Method를 보고! 똑같이 만들어준다.

    def post(self) :




        # 1. 클라이언트가 보내준 데이터가 있으면
        #    그 데이터를 받아준다.
        data = request.get_json()

        # print(data)

        # 2. 이 레시피정보를 DB에 저장해야한다.
        
        try :
            ### 1. DB에 연결
            connection = get_connection()

            ### 2. 쿼리문 만들기
            query = '''insert into recipe
                    (name,description,num_of_servings,cook_time,directions)
                    values
                    (%s,%s,%s,%s,%s);'''
            ### 3. 쿼리에 매칭되는 변수 처리 해준다. 튜플로!
            record = ( data['name'],data['description'],data['num_of_servings'],data['cook_time'],data['directions'] )

            ### 4. 커서를 가져온다.
            cursor=connection.cursor()

            ### 5. 쿼리문을 커서로 실행한다.
            cursor.execute(query, record)

            ### 6. 커밋을 해줘야 DB에 완전히 반영된다.
            connection.commit()

            ### 7. 자원 해제
            cursor.close()
            connection.close()

        except Error as e :

            print(e)
            cursor.close()
            connection.close()

            return{"result" : "fail", "error" : str(e)} , 500



        # API를 끝낼때는
        # 클라이언트에 보내줄 정보(json)와 http 상태 코드를
        # 리턴한다.
        return {"result" : "success"} , 200

포스트맨을 이용한 테스트 결과

MySQL에서 select문을 이용해 확인 결과

 

'Rest API' 카테고리의 다른 글

API서버 - 클라이언트에서 입력받은 값으로 DB 수정하기 (PUT)  (0) 2023.01.04
API - 클라이언트로부터 특정 정보의 값 출력하기 (GET)  (0) 2023.01.04
Python에서 MySQL연동하는 방법 중에 Config파일을 만들어 정보를 따로 저장하는 방법  (0) 2023.01.04
Rest API 서버 개발을 위한 가상환경 설정과 flask 프레임워크 설치  (0) 2023.01.03
Restful API ( URI , Methods , Message )  (0) 2023.01.03
    'Rest API' 카테고리의 다른 글
    • API서버 - 클라이언트에서 입력받은 값으로 DB 수정하기 (PUT)
    • API - 클라이언트로부터 특정 정보의 값 출력하기 (GET)
    • Python에서 MySQL연동하는 방법 중에 Config파일을 만들어 정보를 따로 저장하는 방법
    • Rest API 서버 개발을 위한 가상환경 설정과 flask 프레임워크 설치
    왕현성
    왕현성
    AI 머신비전 학습일지

    티스토리툴바

    단축키

    내 블로그

    내 블로그 - 관리자 홈 전환
    Q
    Q
    새 글 쓰기
    W
    W

    블로그 게시글

    글 수정 (권한 있는 경우)
    E
    E
    댓글 영역으로 이동
    C
    C

    모든 영역

    이 페이지의 URL 복사
    S
    S
    맨 위로 이동
    T
    T
    티스토리 홈 이동
    H
    H
    단축키 안내
    Shift + /
    ⇧ + /

    * 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.