목록Django (16)
개발자 블로그

-Wigs란? 웹서버와 연결시켜주는 프로토콜 같은 업무 웹서버와 파이썬 서버가 소통할 수 있게 해주는 미들웨어! -asgi란? wigs는 동기 함수만 지원, 비동기 방식을 지원 및 wigs를 보완하고자 나온 wigs의 상위호환 버젼. -포린키에 유니크 설정 True로 하면, onetonone 필드와 동일 실제로 아래와 같은 문구가 뜬다. 대충 해석해보면 포린키에 유니크 키를 트루로 설정하는 것은 onetoone필드로 설정하는 것과 같은데 그냥 OnetoOne필드로 설정해서 써~ 이런 말이다. -admin page 꾸미기 Def __str__ -> 어드민 페이지 어트리뷰트의 값을 원하는대로 보여지게 할 수 있다. 원래는 객체형태로 나오는데, 유저 프로필을 생성할 때, 설정한 이름으로 나오는 것을 확인 할 ..
EagerLoading이란 즉시 로딩한다는 말로 lazyloading과 반대되는 개념이라 할 수 있다. 따라서 lazyloading의 문제인 N+1과 같은 문제를 해결해 줄 수 있다! 그렇다고 해서 lazyloading이 안좋다는 말이 아니다! 때에 따라 더 효율적인 코드를 짜기 위해 다양한 방법을 알기 위함이다. 그렇다면, 즉시 로딩을 하기 위해 장고는 어떤 메소드를 제공하는가! 바로 select_related()와 prefetch_related()라는 메소드이다. 먼저 N+1 문제를 예제를 살펴보면서 알아보자! users : Qeuryset() = User.objects.all() # lazyloading으로 아직 sql을 호출 안 함. for user in users: user.userinfo # ..
Lazy Loading QuerySet의 특징으로는 Lazy Loading, 지연 로딩이 있다. 지연 로딩은 QuerySet을 evaluation 하기 전까지 QuerySet에서 filter()를 추가하고 exclude() 하는 것은 데이터베이스에서 쿼리를 수행하지 않는다. QuerySet을 evaluation하는 방법은 여러 가지가 있다. len() , list() , bool() , repr() 등을 QuerySet에 사용했을 때 QuerySet은 evaluation 되고 실제로 데이터베이스에서 쿼리를 수행하게 된다. Caching 각 QuerySet은 데이터베이스로 접속을 최소확 하기 위해 cache를 갖고 있다. QuerySet이 Evaluation 되기 전엔 cache가 비어있지만 evaluat..
QuerySet을 잘사용하는법 QuerySet은 1개의 Query 와 0~N개의 QuerySet으로 이루어져있다. 수행하고자 하는 SQL을 먼저떠올리지말고 가져오고자하는 데이터 리스트를 먼저 떠올리자 QuerySet이 제공하는 기초적인 SQL구조를 기억하자 이 구조를 벗어난다면 그건 RawQuerySet으로 풀자 (Queryset이 제공하는기본적인 SQL구조 4-2 참고) ORM으로 복잡한 SQL을 구현했다고 ORM을 잘쓰는 것이 아니다. 어떤 로직을 작성하는데 단조로운 SQL작업을 줄여주고 Object와 Relational을 Mapping해준다는 ORM의 장점을 얻을수 없다면 그때는 NativeSQL을 사용하자 NativeSQL(속칭 날쿼리) 사용을 망설이지말아라 특히 SQL성능이 중요한 경우라면 , ..
QuerySet이란 django에서 QuerySet은 데이터베이스의 객체들의 집합을 의미한다. QuerySet은 기본값으로 objects 라는 이름을 가진 Manager 를 통해 얻을 수 있다. Manager는 django model과 데이터베이스 사이를 오갈 수 있게 해주는 역할이다. categories = Category.objects.all() 위와 같은 코드는 Category 테이블 내 모든 객체를 불러오는 역할을 한다. filter() 를 써서 원하는 정보만을 불러올 수도 있다. books = Book.objects.filter(name__startswith='This') 이 코드로는 ‘This’로 시작하는 책의 데이터들을 불러올 수 있다.
참고: https://velog.io/@magnoliarfsit/ReDjango-1.-%EC%9E%A5%EA%B3%A0-%EC%B4%88%EA%B8%B0%EC%84%B8%ED%8C%85 [Re:Django] 1. 장고 초기세팅 1차 그룹프로젝트가 끝나고 내가 얼마나 부족한 지 알 수 있었다.모래성이 무너질듯 불안하게 쌓여가고 있었는데, 그 모래성이 무너지지않도록 다시 한 번 처음부터 차근차근 정리해볼 생각이 velog.io https://medium.com/@likegondry/django-annotate-%EC%95%8C%EC%95%84%EB%B3%B4%EA%B8%B0-6034396e45f5 [Django] annotate() 알아보기 오늘은 django의 annotate()에 대해 다뤄본다. anno..