Serial_Seller 개발일지2(게임할인정보모음사이트)

어제는 아주 단순한 코드의 수정으로 머릴 싸맸다. 하지만 대게 내 문제는 지나보면 정말 별거 아니여서 허탈할 정도이니 딱히 억울하진 않다.

현재 연쇄할인마의 진행상태는 구글링해서 찾아온 잘만들어진 navbar 를 만들어 두었고. python으로 스팀의 할인목록페이지를 파싱해온 후 db에 저장하는 post api, 그리고 그 db에서 따오는 get api까지 만들어둔 상태이다.

그런데 지인에게 코드 검수를 받던 중 지적을 한군데 받았다.

정기적으로 변하는 스팀의 할인목록을 db에 계속 쌓아둘 수는 없는 노릇이므로, 나름의 업데이트를 하기 위한 수단으로 기존의 db를 통으로 없이는 delete를 사용했었는데 굳이 그럴 필요가 있냐는 것이다.

현재 쓰고 있는 db는 Mongo db이므로 pymongo로 검색해 update란 문법을 발견하고 적용했다.

db = client.dbsteaminfo
db.info.update({'title': game_title}, {'platform': 'steam', 'link': game_link, 'img': game_img, 'title': game_title, 'original_price': game_original_pirce, 'discount_rate': game_discount_rate, 'discount_price': combined_price}, upsert=True)
#'title'키 값에 파싱해온 game_title이 없으면 새로 추가하는 줄
db.info.update({'title': game_title}, {'platform': 'steam', 'link': game_link, 'img': game_img, 'title': game_title, 'original_price': game_original_pirce, 'discount_rate': game_discount_rate, 'discount_price': combined_price})
#'title'키 값에 파싱해온 game_title이 있다면 전체 수정하는 줄

for a in db.info.find():
    if {a['title'] : { "$eq": game_title }} == 0:
        db.info.remove(a['title'])
#내 Collection에 잇는 title과 파싱해온 game_title의 값이 같은게 없다면 db에서 제거하는 줄

위 의 두줄은 다른 db로 실험해 보았으며 정상적으로 작동하지만 마지막줄은 아직 체크해보진 못했다. 개인적인 생각으론 두번째 줄은 필요없어 보인다.

오늘은 최우선적으로 연쇄할인마의 전체적인 청사진을 좀더 세밀하게 그려 프린트 해 볼 생각이다. 만약 여유가 된다면 지인이 말했던 cron을 통해 db에 저장하는것 까지 성공시켜보고 싶다.

좋은 웹페이지 즐겨찾기