오늘 한 일
mongoDB에 크롤링한 데이터 넣는 작업
- AWS에 도저히 들어가질 않아서 문제점 파악을 위해 일단 localhost로 옮겼다.
- 문제가 되는 다른 부분들은 다 정리했고, 마지막으로 남은 문제..
- 크롤링해오는 dict 안에 type이 datetime인 정보가 들어가있으면 insert_one 함수가 작동하지 않는다.
▼ 이 때 터미널에 뜨는 alert
Traceback (most recent call last):
File "C:\Users\gangim\Desktop\sparta\projects\boda\app.py", line 74, in <module>
db.shows.insert_one(show)
File "C:\Users\gangim\Desktop\sparta\projects\boda\venv\lib\site-packages\pymongo\collection.py", line 705, in insert_one
self._insert(document,
File "C:\Users\gangim\Desktop\sparta\projects\boda\venv\lib\site-packages\pymongo\collection.py", line 620, in _insert
return self._insert_one(
File "C:\Users\gangim\Desktop\sparta\projects\boda\venv\lib\site-packages\pymongo\collection.py", line 609, in _insert_one
self.__database.client._retryable_write(
File "C:\Users\gangim\Desktop\sparta\projects\boda\venv\lib\site-packages\pymongo\mongo_client.py", line 1552, in _retryable_write
return self._retry_with_session(retryable, func, s, None)
File "C:\Users\gangim\Desktop\sparta\projects\boda\venv\lib\site-packages\pymongo\mongo_client.py", line 1438, in _retry_with_session
return self._retry_internal(retryable, func, session, bulk)
File "C:\Users\gangim\Desktop\sparta\projects\boda\venv\lib\site-packages\pymongo\mongo_client.py", line 1470, in _retry_internal
return func(session, sock_info, retryable)
File "C:\Users\gangim\Desktop\sparta\projects\boda\venv\lib\site-packages\pymongo\collection.py", line 597, in _insert_command
result = sock_info.command(
File "C:\Users\gangim\Desktop\sparta\projects\boda\venv\lib\site-packages\pymongo\pool.py", line 726, in command
self._raise_connection_failure(error)
File "C:\Users\gangim\Desktop\sparta\projects\boda\venv\lib\site-packages\pymongo\pool.py", line 710, in command
return command(self, dbname, spec, secondary_ok,
File "C:\Users\gangim\Desktop\sparta\projects\boda\venv\lib\site-packages\pymongo\network.py", line 121, in command
request_id, msg, size, max_doc_size = message._op_msg(
File "C:\Users\gangim\Desktop\sparta\projects\boda\venv\lib\site-packages\pymongo\message.py", line 743, in _op_msg
return _op_msg_uncompressed(
bson.errors.InvalidDocument: cannot encode object: datetime.date(2016, 8, 16), of type: <class 'datetime.date'>
Process finished with exit code 1
필터를 적용해야해서 datetime 값은 string이 아니라 반드시 datetime으로 긁어와야하는데 도저히 해결이 안된다.
관련 오류로 검색하다가 찾은 스택오버플로우 질문들..
잠깐 머리 식히고 다시 만지러 와야겠다.. 이것만 해결하면 나머지는 js라 금방 할 것 같은데..
혹시나 어제처럼 쓰는 거 까먹을까봐 TIL 먼저 쓰러 왔다. 작업 마무리하고 잘 때 와서 수정하자.
▶ 시간 안에 해결 못할 것 같아서 타협했다. (지금 나는 못 함!) string 상태로 프론트엔드로 넘기고 javascript를 이용해서 날짜로 바꾸기로 했다.
오늘의 최종 정리
1. DB에 데이터 넣는 작업 완료
2. DB에 들어간 정보를 API에 넣어서 프론트엔드로 보내는 작업 완료
3. 프론트엔드로 보낸 API를 받아서 html상에 노출시키는 작업 완료
앞으로 할 일
목요일에는 작업 못 하고, 일정 조정해서 금요일에 작업 시간을 만들었다. 9시간 정도는 작업 할 수 있을 것 같아서.. 그 안에 완료 가능한 수준으로 타협하며 작업 마무리하자.
금요일까지
- 지역별 노출 가능하도록 selected 검색 연관된 javascript 만들기
1) 현재 코드에서 showArticles() 함수 부분에 조건문을 넣으면 될 것 같지만, 해보지 않아서 확실히 모르겠음.
일단 API를 불러오고, 그 후에 API 안에서 selected option의 해당값을 추출해야함.. 순서가 중요하다..
2) 아니면 refresh용 makeCard() 와는 아예 별개의 함수를 만드는게 나을수도있다.
오히려 이렇게 한다고 생각하니 더 간단해지네.. 애초에 API를 호출할 때 seleted option의 value와 동일한 location값을 가지고 있는 dict만 불러오면 된다.
근데 다 추측이고.. 직접 해봐야 할 듯. 목요일 오전에 시간이 날 지 모르겠지만, 일찍 일어난다면 한번 씩 해보고 일보러 나가자.
- 현재 날짜 기준 필터도 적용하고싶은데, 시간상 가능할 지 모르겠다. 위의 과제가 시간내에 끝나면 한 번 해 보는 것도?
발표 이후에 해결해야하는 이슈들
[백엔드]
- python 스크래핑 함수 손봐야함 : find 이용해서 중복 제외하고 자동 업데이트 되도록 만들기
- 스크래핑 함수 손본 뒤 일단 코드 만들어놓은 갤러리 일자별 데이터 돌면서 db 쌓기
[프론트엔드]
- 현재 카드 디자인에 Artist가 빠져있다. 해당 영역 만들기.
- 마우스 오버 css 넣기
- 최대 노출 영역 한정하고, 그 이상 보고 싶을 경우 more 버튼 누르면 펼쳐지는 아코디언 버튼 만들기
'Journal > Today I Learned' 카테고리의 다른 글
TIL - 2022.01.10 월요일 (0) | 2022.01.10 |
---|---|
2021년 회고 & 2022년 목표 (0) | 2021.12.30 |
TIL - 2021.11.15 월요일 (0) | 2021.11.15 |
TIL - 2021.10.29 금요일 (0) | 2021.10.30 |
TIL - 2021.10.28 목요일 (0) | 2021.10.29 |