KyleXID

몬스터코딩

20190617 TIL

2019-06-17 KyleXIDTIL

파이썬 remind

  • 정수 홀수 구분 x%2 == 1 홀수, x%2 == 0 짝수이다. (나머지로 판별)
  • float, int의 차이, 4.0과 4의 차이이다. float는 실수, int는 정수를 나타낸다.

장고 remind

  • filter로 가져온 쿼리문들은 for문으로 하나하나 접근할 시 바로 딕셔너리 형태처럼 키값으로 접근 할 수 있다.
  • get 또는 filter[0], filter.first()등으로 가져온 아이들은 __dict__로 변환하여 키값으로 접근할 수 있다.
  • filter로 가져오는 쿼리 데이터가 많을 경우에 iterator()를 사용하자. 무조건 쓰는건 아니고, 데이터의 양이 많은 경우에 쓰도록하자. iterator()의 경우에는 한번 추출하면 사라지므로 사용하는 상황을 제대로 판단하여 사용하자.
  • 장고 update할 시 get과 filter의 차이

    • get: .update() 사용 불가, 해당 변수에 접근하여 값을 할당하고 save(update_fields='~', ...) 형식으로 해주어야 한다.
    • filter: Post.objects.filter(id=?).update(...) 로 update 가능하다.
  • updateorcreate

    • 장고 1.7 이상부터 지원하는 메서드이다.

장고 디버그 툴 바

softdelete, hartdelete

  • hard_delete: 데이터를 아예 삭제하는 것
  • soft_delete: 데이터를 지웠다고 표시만 해주는 것. 실제 데이터는 남아있다.

    • 일반적으로 데이터는 안지우고 지웠다고 표시해주는 soft_delete 방식이 자주 쓰인다.

RESTful API개발 시 DELETE 메서드

  • RESTful API 개발시 삭제엔드포인트를 만들 경우 DELETE 메서드를 사용하는 것이 RESTful API적인 개발 방식이고, 깔끔하다.
  • 굳이 사용을 강요할 필요는 없다. 큰 범위내에서는 post에 포함되기 때문에, 따로 post로 새로운 엔드포인트를 만들어도 무관하다.