전체 글(227)
-
[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 -
[TIL] 09.27 기업협업 - DB테이블, crawling error
오늘 한일 엔지니어분과 체크인 후 DB 테이블을 다시 만들었다. 처음 만든 DB 테이블은 플랫폼을 추가하면 수 많은 테이블이 생겨 났고 한눈에 보기에도 어려웠다. 그리고 값을 불러오기도 효율적이지 못한것 같았다. 유저 , 비디오, 증감차 테이블 들의 colum 들이 똑같았기 때문에 하나로 합쳐버리고 type 값으로 각각의 플랫폼을 넣어 주었다. 그리고 조인 테이블을 만들어 인덱스 값들로 불러올 수 있도록 하였다. 이렇게 만들고 보니 일단 보기가 편했고 플랫폰을 추가할 때도 그냥 플랫폼 이름만 넣어주기만 하면 된다. 여러번 수정을 거치고 오랜 고민을 하니 점점 나아진 테이블들을 볼 수 있었다. API를 작성하기전 파일들이 다 받아 오는지확인 하던중 404 에러가 발생하였다. urlopen을 사용해서 페이지..
2019.09.28