Many to many relationships 2

이남경·2024년 4월 9일
0

SSAFY 11기

목록 보기
58/67

팔로우 기능 구현


프로필 페이지

각 회원의 개인 프로필 페이지에 팔로우 기능을 구현하기 위해 프로필 페이지를 먼저 구현하기

기능 구현


User(M) - User(N)

0명 이상의 회원은 0명 이상의 회원과 관련

→ 회원은 0명 이상의 팔로워를 가질 수 있고, 0명 이상의 다른 회원들을 팔로잉 할 수 있음

참고


.exists()

QuerySet에 결과가 포함되어 있으면 True를 반환하고 결과가 포함되어 있지 않으면 False를 반환

→ 큰 QuerySet에 있는 특정 객체 검색에 유용

Fixtures


Fixtures

Django가 데이터베이스로 가져오는 방법을 알고 있는 데이터 모음

→ 데이터는 데이터베이스 구조에 맞추어 작성되어 있음

초기 데이터 제공

Fixtures의 사용 목적

Fixtures 활용

사전 준비

M : N 까지 모두 작성된 Django 프로젝트에서 유저, 게시글, 댓글 등 각 데이터를 최소 2~3개 이상 생성해두기

fixtures 관련 명령어

dumpdata 생성 (데이터 추출)

loaddata 로드 (데이터 입력)

dumpdata

데이터베이스의 모든 데이터를 추출

loaddata

Fixtures 데이터를 데이터베이스로 불러오기

Fixtures 파일 기본 경로

app_name/fixtures

Django 는 설치된 모든 app의 디렉토리에서 fixtures 폴더 이후의 경로로 fixtures 파일을 찾아 load

참고


모든 모델을 한번에 dump 하기

Fixtures 파일을 직접 만들지 말 것

반드시 dumpdata 명령어를 사용하여 생성

Improve query


Improve query

query 개선하기

→ 같은 결과를 얻기 위해 DB 측에 보내는 query 개수를 점차 줄여 조회하기

annotate


annotate

SQL의 GROUP BY를 사용


select_related

SQL의 INNER JOIN을 사용

→ 1 : 1 또는 N : 1 참조 관계에서 사용


prefetch_related

M : N 또는 N : 1 역참조 관계에서 사용

→ SQL이 아닌 Python을 사용한 JOIN을 진행


0개의 댓글

관련 채용 정보