기억 저장소

클라우드 기반 인공지능 개발과 DevOps 실무

카테고리 없음

Sever : 하드코딩의 문제점 해결방법 : DB에 연결

하늘.98 2022. 3. 21. 11:09

글쓴이인 나는 

비교하기위해서 비교 할 리스트 값을 서버쪽에 저장하게 되었다. 

이런 경우에는 리스트 값을 추가/삭제/수정하는 경우에는 서버를 다시 

deploy이 해야 되기 때문에 배포하는 경우 매번 업데이트를 해야된다. 

이렇게 되면 이용자들은 매번 불편하게 업데이트를 해야된다. 이런 문제를 줄이고자 

변동성이 큰 코드들을 DB에 저장해주면 된다. 

 

나는 MySQL을 사용하기 있으니 MySQL에 새로운 DB를 만들어보자 

 

 

나는 lables 라는 테이블에 문제가 있는 사물 이름만 넣어놓았다.

 

새로운 값을 넣어준다. 

 

 

# 6번부터는 새로운 DB와 연결하는 것이다 

내가 만든 리스트를 가져오는 코드이다. 

 

   try :
            # 1. DB 에 연결
            connection = get_connection()
           
            # 2. 쿼리문 만들고
            query = '''insert into scooter
                        (user_id,img_url)
                        values
                        (%s,%s);'''
            # 파이썬에서, 튜플만들때, 데이터가 1개인 경우에는 콤마를 꼭
            # 써준다.
            record = (user_id,Config.S3_LOCATION + filename)
           
            # 3. 커넥션으로부터 커서를 가져온다.
            cursor = connection.cursor()

            # 4. 쿼리문을 커서에 넣어서 실행한다.
            cursor.execute(query, record)

            # 5. 커넥션을 커밋한다.=> 디비에 영구적으로 반영하라는 뜻.
            connection.commit()

            # 6. 사진안에 있으면 안되는 이미지 이름이 있는 DB를 가져온다.
            query = '''select name from lables;'''
           
            # 7. 커넥션으로부터 커서를 가져온다.
            cursor = connection.cursor()

            # 8. 쿼리문을 커서에 넣어서 실행한다.
            cursor.execute(query)

            # select 문은 아래 내용이 필요하다.
            record_list = cursor.fetchall()
            print(record_list)

        except Exception as e:
            print('Error ', e)
            # 6. username이나 email이 이미 DB에 있으면,
           
            return {'error' : '포스팅 에러입니다.'} , HTTPStatus.BAD_REQUEST
        finally :
            if connection.is_connected():
                cursor.close()
                connection.close()
                print('MySQL connection is closed')    
 
return record_list
 
 
 
 
포스트맨으로 돌려보니 리스트에 담겨서 나왔다