본문 바로가기
Restful API

[Restful API] Python MySQL Connector를 이용해 select 하는 방법

by dong_su 2023. 12. 6.

위의 글(insert)에서 mysql.connector를 import해서 파이썬으로 MySQL 접속할 수 있게 해주는 함수를 선언한 상태

 

select 하는 방법)

-> Postman에 http method는 GET, URL, Body는 none으로 작성한다.

 

from flask import request
from flask_restful import Resource
from mysql_connection import get_connection
from mysql.connector import Error

def get(self) :
        # 1. 클라이언트로부터 데이터를 받아온다.
        # 없음

        # 2. db에 저장된 데이터를 가져온다
        try :
            connection = get_connection()
            
            query = '''
                    select * 
                    from recipe;
                    '''"The method is not allowed for the requested URL."
            
            # 중요!! Select문에서 cursor를 만들 때 
            # 클라이언트에게 json 형식으로 보내줘야 하기 때문에
            # cursor() 함수의 인자 dictionary = True로 해준다.
            # 하지 않으면 리스트와 튜플의 형식으로 받아 온다.
            cursor = connection.cursor(dictionary=True)
            
            cursor.execute(query)

            result_list = cursor.fetchall()

            # datetime은 파이썬에서 사용하는 데이터타입이므로 json 형식이 아니다
            # json은 문자열, 숫자만 가능하므로 datetime을 문자열로 바꿔줘야 한다 

            i = 0
            for row in result_list :
                result_list[i]["created_at"] = row["created_at"].isoformat()
                result_list[i]["updated_at"] = row["updated_at"].isoformat()
                i = i+1
            
            cursor.close()
            connection.close()

        except Error as e :
            print(e)
            cursor.close()
            connection.close()

            # 유저한테 알려줘야 한다.
            return {"result" : "fail", "error" : str(e)}, 500
        
        return {"result" : "success", "items" : result_list, "count" : len(result_list)}, 200

-> 해당 코드 작성

 

-> status code 200과 함께 작성한 쿼리문 select * from recipe에 해당 하는 데이터들이 정상적으로 나온 모습