관리 메뉴

관심쟁이 영호

[#3 이미지 검색 프로젝트] API 응답 객체화(클래스화?) 하기! 본문

카테고리 없음

[#3 이미지 검색 프로젝트] API 응답 객체화(클래스화?) 하기!

영짱 관심쟁이 영호 2021. 9. 19. 20:21
728x90
반응형

크롤링한 내용을 list를 통해서 전달하지 않고 객체를 생성하여 getter, setter로 편하게 이용하고 싶어서 작업을 조금 더 하려고 한다!

 

코드는 다음과 같다.

 

목차

  • 클래스 생성
  • 크롤링 클래스에 적용하기

클래스 생성

 

model.py

class model():
  title = ''
  price = ''
  type =''
  fileName =''
  link =''
  filePath = ''

  def __init__(self):
        self.name = '정보 없음'
        self.type = '정보 없음'
        self.address = '정보 없음'
        self.price ='정보 없음'
        self.filePath = '정보 없음'
        self.link = '정보 없음'
        

  def setTitle(self, title):
        self.title = title
  
  def getTitle(self):
      
    return self.title
  
  def setPrice(self, price):
        self.price = price
  
  def getPrice(self):
    
    return self.price
  
  def setType(self, type):
        self.type = type
  
  def getType(self):
    
    return self.type

  def setFileName(self, fileName):
        self.fileName = fileName
  
  def getFileName(self):
    
    return self.fileName
  def setLink(self, link):
        self.link = link
  
  def getLink(self):
    
    return self.link
  def setFilePath(self, filePath):
        self.filePath = filePath
  
  def getFilePath(self):
      
    return self.filePath

 

파이썬에서 고유하게 지원하는 get / set 모듈이 있을 것이다. 하지만 모듈에는 별도의 추가 내용이 있을 것이므로, 가볍게 사용하기 위해서 내가 원하는 함수만 선언하여 만들었다.

 

내가 수집할 내용은 

title : 상품 이름

link : 상품 링크

price : 상품 가격

fileName : 저장된 사진 이름

filePath : 저장된 사진의 경로

type : 상품 타입 (검색 단어로 지정했다. 나중에 where 절을 이용하기 위해서 적어두었다.)

 


크롤링 클래스에 적용하기

 

해야하는 적용은 다음과 같다.

 

  • 크롤링 내용을 model 클래스로 적절하게 파싱 하고, DB 저장 클래스로 보낸다.

 

1. 방금 생성한 model 클래스 정보를 가져온다.

import model

 

2. 모델을 생성하고 초기화해준다.

      getModel = model.model()
      getModel.setTitle(title)
      getModel.setPrice(price)
      getModel.setLink(link)
      getModel.setType(searchModel)
      getModel.setFileName(fileName)
      getModel.setFilePath(filePath)
      DAO.insertData(getModel)

 

DAO는 insert를 할 클래스이다.

 

 

728x90
300x250
0 Comments
댓글쓰기 폼