20190617 TIL
파이썬 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 가능하다.
- get: .update() 사용 불가, 해당 변수에 접근하여 값을 할당하고
-
- 장고 1.7 이상부터 지원하는 메서드이다.
장고 디버그 툴 바
- 장고 디버그 툴바를 통해 쿼리를 효과적으로 사용하고있는지, 중복은 없는지 파악할 수 있다.
장고 효과적으로 사용하기-raccoony님 블로그
장고 디버그 툴바
softdelete, hartdelete
- hard_delete: 데이터를 아예 삭제하는 것
-
soft_delete: 데이터를 지웠다고 표시만 해주는 것. 실제 데이터는 남아있다.
- 일반적으로 데이터는 안지우고 지웠다고 표시해주는 soft_delete 방식이 자주 쓰인다.
RESTful API개발 시 DELETE 메서드
- RESTful API 개발시 삭제엔드포인트를 만들 경우 DELETE 메서드를 사용하는 것이 RESTful API적인 개발 방식이고, 깔끔하다.
- 굳이 사용을 강요할 필요는 없다. 큰 범위내에서는 post에 포함되기 때문에, 따로 post로 새로운 엔드포인트를 만들어도 무관하다.