190107 스타트업 — 사진추천PROJ

정민수
3 min readJan 7, 2019

--

19.01.07 현재 진행상황

  1. url parsing 이용 추천 함수 구분
  2. userID 입력 반영
  3. rds 연결 내용 클래스 분리
  4. ec2 파일 저장 반영

1) url parsing 이용 추천 함수 구분

def handle_http(self, status_code, path):
self.send_response(status_code)
self.send_header('Content-type', 'application/json')
self.end_headers()
global Func
global user_id

if path != '/favicon.ico':
Func = path[1:10]
user_id = path[11:].encode('UTF-8')
user_id = int(user_id)
else:
pass

if Func == 'Pic_Recom':
already_rated, predictions = self.Pic_Recom(user_id, 10)
predictions = predictions.set_index('Cloth_ID')


# predictions = predictions.set_index('Cloth_ID')
content = predictions.to_json(orient = 'records')
else:
pass
return bytes(content, 'UTF-8')
# return content

def respond(self, opts):
response = self.handle_http(opts['status'], self.path)
self.wfile.write(response)

위 path 값이 url parsing 값이 입력되고 곧 바로 favicon.ico가 parsing 되어 path에 저장되었다. 웹상에 보여줄 때는 favicon.ico라는 path는 걸러서 보여주는 것 같다. (또는 맨 처음 parsing된 path값을 보여줄 수 도 있다.) 조건문을 통해 favicon.ico가 path에 저장되어도 함수와 user_ID를 구분하는 데에는 저장하지 않았다.

2) usrID 입력반영

위 코드에서 처럼 path를 ‘/’ 를 구분자로 함수와 user_ID를 입력받아 사진추천 함수를 실행하였다.

3) rds 연결 내용 클래스 분리

rds와 연결되는 Id/Pw는 클래스 파일로 분리하여 로컬에 저장하였다.

4) ec2 파일 저장 반영

today = pd.Timestamp('today')
preds_df.to_csv('../Data/preds_df_{:%Y%m%d%H%M}.csv'.format(today) ,index=False)

if __name__ == "__main__":
pred_batch()
sys.exit(1)

배치 파일 내에서 백업 파일 저장은 다음과 같은 코드를 통해 날짜와 시간이 찍힌 파일로 저장하였다.

files = [f for f in listdir('../Data/') if isfile(join('../Data/', f))]
predictions_df = pd.read_csv('../Data/{}'.format(files[-1]))

가장 최신 파일을 불러 올 때는 위와 같은 코드를 이용하였다.

--

--

정민수
정민수

No responses yet