TIL(196)
-
[TIL] 10.08 기업협업 - 로그 테이블 , 에러 핸들링, APIview
오늘 한일 viewset을 사용하여 API를 만드는데 한계가 있어 APIview를 같이 사용 하기러 했다. 그런데 경로를 설정해줄 때 계속 APIview 경로가 나타나지 않았다. defaultrouter 때문인가 싶어서 simpleRouter로 변경해 보았지만 똑같았다. APIview 혼자 쓸때만 경로가 나타 났다. 그래서 APIview로 리팩토링 하기로 하였다. DB logtable 에 값을 넣는 작업을 하였다. 쿼리셋을 사용하여 오늘과 어제 , 이번주와 저번주, 이번달과 저번달의 구독수, 조회수, 좋아요 등을 구하여 뺀값들을 넣기로 하고 작업을 시작했다. 쿼리셋은 금방 만들었지만 각각의 비디오의 좋아요, 조회수등을 빼는 부분에서 문제가 발생했다. 각각의 동영상이 어제 오늘 동일한 동영상 값을 구해와야..
2019.10.09 -
[TIL]10.07 기업협업 - import error , API
오늘 한일 크롤링 함수가 있는 파일로 models 에서 설정해둔 테이블을 import 해야 되는데 계속 에러가 발생했다. 파이썬에서는 해당 폴더와 하위 폴더 만 import가 가능하다고 한다. 그래서 상위 폴더이거나 같은 선 상의 다른 폴더를 import 하기 위해서는 경로를 설정 해줘야 한다고 한다. sys.path.insert(0, “/Users/jongock/Desktop/crawler-1/mysite/myapi/models”) sys.path.append(os.path.dirname(os.path.abspath(os.path.dirname(file)))) 다양하게 PATH 설정을 시도해 보았지만 모듈을 찾을수 없다는 에러만 발생하였다. 그래서 그냥 models 파일이 있는곳으로 파일을 옮겨서 시도..
2019.10.07 -
[TIL]10.06 기업협업 - API
오늘 한일 orm 을 사용하여 테이블 조인을 사용했지만 계속 에러가 나왔다. 관계도 바꿔주고 쿼리셋도 다양하게 이용해 보았지만 결과는 똑같았다. 그러던중 serializer 를 설정할때 realted 값 까지 설정할 수 있는걸 알게 되었다. https://www.django-rest-framework.org/api-guide/relations/#nested-relationships Failed to push some rest to 로컬 상태와 저장소 상태가 다를 때 발생하는 에러 => 다시 해당 브런치를 pull 한 다음 커밋후 push 하면 된댜.
2019.10.06 -
[TIL] 10.03 기업 협업 - database error
오늘 한일 크롤링한 데이터들을 DB에 저장하려고 하는데 계속 에러가 발생하였다. 하나를 해결하면 또 다른 에러가 나고 에러의연속 이였다. 그런데 신기한건 쪽같은 코드인데 지우고 그대로 복붙을 하고 나니 해결이 되는 경우도 있었다. 정말 허탈 하였다. type error 가 나는 경우 였는데 입력하는 데이터를 int() 값을 줘보기도 하고 포멧팅 값을 바꿔줘도 계속 똑같은 에러가 났다. 검색을 했을때 mysql 5.7 버전 부터는 strict mode가 디폴트 값으로 설정이 되어 이걸 주석처리 하던지 없애줘야 한다고 하였다. 우선 첫 번쨰로 시도한 방법은 my.cnf 파일을 찾아서 직접 변경하는 것이다. 이 파일은 총 2개가 있어서 둘다 바꿔줘야 한다. 하나는 /usr/local/etc/my.cnf 에 있..
2019.10.03 -
[TIL] 10.02 기업협업 - DB 최종/ 쿼리셋
오늘 한일 CTO 님이 DB에 대한수정사항과 만들때 조심해야 할 점들을 말해 주었다. 플랫폼 이름은 코드성 테이블로 만드는게 좋다 오타가 나서 플랫폼 이름이 잘못 저장되어 버리면 안되니까 인덱스 (key)값은 테이블의 이름으로 설정 하는 것이 좋다. Logical 테이블과 Physical 테이블을 만들어 둬야 한다. 이 테이블을 보는 사람들이 이해 할 수 있도록 하루에 두 번을 돌린다고 한다면 한 데이터가 한번 돌았다는 것을 어떻게 확인 할 것인가? 쿼리에 포함되는 단어 Update, name 등은 사용하지 않는 것이 좋다. 한번에 다 불러오는 조인 테이블이 아닌 이상 바로바로 연결해 주는 것이 좋다. 데몬을 돌리면서 가장 바쁜 테이블은 어디인지를 계속 체크 해야 한다. 또한 가장 데이터가 많이 들어가는..
2019.10.02 -
[TIL] 09.29 기업협업
오늘 한일 크롤링을 하기위해 페이지를 받아오는 과정에서 에러가 나는 원인은 봇을 차단하는 기능이었던것 같다. req = Request(URL, headers={'User-Agent': 'Mozilla/5.0'}) request 의 헤드 값에 위의 값을 넣어서 보내주니 해결이 되었다. DB에 대해 엔지니어분에게 한번 더 확인을 부탁했고 수정 사항을 받아 수정을 하였다. (더 이상 시간이 없어 마지막 수정을 하고 이대로 사용하기로 하였다.) 따로 떨어져 있을 필요가 없는 테이블을 하나로 합쳐 주었고, 뎁스가 너무 깊어지지 않도록 n:m의 관계 사이에는 관계 테이블을 하나 만들어 주어 좀더 쉽게 데이터를 가져올수 있도록 만들어 주었다.
2019.09.29