Restful API

[Restful API] Python MySQL Connector update

건휘맨 2024. 5. 21. 16:43

포스트맨을 실행시켜 PUT로 설정하고 URL 입력

raw JSON형식으로 DB에 업데이트할 정보를 입력

 

 

Visual Studio Code에서 코드 작성

변경 사항은 실제로는 데이터베이스에 반영되기 전에 메모리에만 저장된다.

이렇게 메모리에 저장된 변경 사항을 데이터베이스에 영구적으로 적용하기 위해 commit()을 호출한다.

class RecipeResource(Resource):
     
    def put(self, recipe_id):
        
        # 1. 클라이언트로부터 데이터를 받아온다.
        data = request.get_json()
        print(recipe_id)

        # 2. DB 에 수정한다.
        try:
            connection = get_connection()

            query = '''update recipe
                        set name = %s, 
                            description = %s, 
                            num_of_servings = %s,
                            cook_time = %s,
                            directions = %s
                        where id = %s;'''
            
            record = (data['name'],
                      data['description'],
                      data['num_of_servings'],
                      data['cook_time'],
                      data['directions'],
                      recipe_id)

            cursor = connection.cursor()
            cursor.execute(query, record)
            
	# 메모리에 저장된 변경 사항을 데이터베이스에 적용하기 위해 commit()
            connection.commit()
            
            cursor.close()
            connection.close()

        except Error as e:
            if cursor is not None:
                cursor.close()
            if connection is not None:
                connection.close()
            return {"result" : "fail", 
                    "error" : str(e)}, 500

        # 3. 클라이언트에 JSON 리턴한다.

        return {'result' : 'success'}

 

데이터가 업데이트 되었는지 MySQL Workbench에서 확인한다.