no image
[Django] REST framework - N:1 Relation
목차 사전 준비 N:1 - 역참조 데이터 조회 Django shortcuts functions 1. 사전 준비 Comment 모델 작성 및 데이터베이스 초기화 이후 Migration 진행 GET - List 댓글 데이터 목록 조회하기 Article List와 비교하며 작성해보기 GET - Detail 단일 댓글 데이터 조회하기 Article과 달리 같은 serializer 사용하기 POST Passing Additional attirbutes to .save() .save() 메서드는 특정 Serializer 인스턴스를 저장하는 과정에서 추가적인 데이터를 받을 수 있음 CommentSerializer를 통해 Serialize되는 과정에서 Parameter로 넘어온 article_pk에 해당하는 artic..
2022.10.20
no image
[Django] Rest framework-Single Model
목차 사전 준비 ModelSerializer Build RESTful API - Article 1. 사전 준비 Postman 설치 https://www.postman.com/downloads/ Postman API를 구축하고 사용하기 위한 플랫폼 API를 빠르게 만들 수 있는 여러 도구 및 기능을 제공 DRF 설치, 등록 및 패키지 목록 업데이트 pip install djangorestframework pip freeze > requirements.txt 2. ModelSerializer ModelSerializer 작성 articles/serializers.py 생성 serializers.py의 위치나 파일명은 자유롭게 작성 가능 ModelSeiralizer 작성 ModelSerializer 클래스는 ..
2022.10.20
no image
[Django] Response JSON
이전 글에서 알아보았던 JSON 형태로의 서버의 응답 변화와 다양한 방법의 JSON 응답에 대해 알아보자. 목차 Intro Response 1. Intro 서버가 응답하는 것 현재까지의 Django로 작성한 서버는 사용자에게 페이지(html)만 응답하고 있었음 하지만 사실 서버가 응답할 수 있는 것은 페이지뿐만 아니라 다양한 데이터 타입을 응답할 수 있음 이런 과정을 거치게 된다면 사용자에게 보여질 화면은 누가 구성하게 되는 걸까? JSON 데이터를 받아 화면을 구성하여 사용자에게 보여주는 것은 Front-end Framework가 담당할 예정 Front-end Framework는 Vue.js를 사용 Django는 더 이상 Template 부분에 대한 역할 담당 x 2. Response JSON 데이터를..
2022.10.20
no image
[Django] REST API
목차 HTTP 복습 URI REST API 1. HTTP 복습 개념 HyperText Transfer Protocol HTML 문서와 같은 리소스(resource, 자원)들을 가져올 수 있도록 하는 프로토콜(규칙, 약속) 웹에서 이루어지는 모든 데이터 교환의 기초가 된다. 클라이언트와 서버는 아래와 같은 개별적인 메시지 교환에 의해 통신 요청(request) 클라이언트에 의해 전송되는 메시지 응답(response) 서버에서 응답으로 전송되는 메시지 특징 Stateless(무상태) 동일한 연결(connection)에서 연속적으로 수행되는 두 요청 사이에 링크가 없음 즉, 응답을 마치고 연결을 끊는 순간 클라이언트와 서버 간의 통신이 끝나며 상태 정보가 유지되지 않음 이를 해결하기 위해 쿠키와 세션을 사용해..
2022.10.18
no image
[DB with Django] M:N (User - User)
User 자기 자신과의 M:N 관계 설정을 통하여 팔로우 기능을 구현해보자. 목차 Profile Follow 1. Profile url 및 view 함수 작성 profile 템플릿 작성 Profile 템플릿으로 이동할 수 있는 하이퍼 링크 작성 2. Follow 모델 관계 설정 ManyToManyField 작성 및 Migration 진행 url 및 view 함수 작성 프로필 유저의 팔로잉, 팔로워 수 & 팔로우, 언팔로우 버튼 작성 데코레이터 및 is_authenticated 추가
2022.10.13
no image
[DB with Django] M:N (Article - User)
Article과 User의 M:N 관계 설정을 통한 좋아요 기능을 구현해보자 목차 LIKE - 모델 관계 설정 LIKE 구현 1. LIKE 모델 관계 설정 ManyToManyField 작성 migration 진행 후 에러 확인 like_users 필드 생성 시 자동으로 역참조에는 .article_set 매니저가 생성됨 그러나 이전 N:1(Article-User) 관계에서 이미 해당 매니저를 사용중 user.article_set.all() -> 해당 유저가 작성한 모든 게시글 조회 user가 작성한 글들(user.article_set)과 user가 좋아요를 누른 글(user.article_set)을 구분할 수 없게 됨 user와 관계된 ForeignKey 혹은 ManyToManyField 중 하나에 rel..
2022.10.13
no image
[DB with Django] M:N relationship
앞에서는 1:1 relationship, 1:N relationship을 살펴보았다면 이번엔 Many-to-many relationships M:N relationship에 대해서 알아보자. 한 테이블의 0개 이상의 레코드가 다른 테이블의 0개 이상의 레코드와 관련된 경우이며, 양쪽 모두에서 N:1 관계를 가진다. 목차 Intro Django ManyToManyField 정리 1. Intro ※ 데이터 모델링 주어진 개념으로부터 논리적인 데이터 모델을 구성하는 작업 물리적인 데이터베이스 모델로 만들어 고객의 요구에 따라 특정 정보 시스템의 데이터베이스에 반영하는 작업 시작하기 전 용어 정리 target model 관계 필드를 가지지 않은 모델 source model 관계 필드를 가진 모델 N:1의 한계 ..
2022.10.13
no image
[DB with Django] N:1 (Comment - User)
Comment(N) 모델과 User(1) 모델 간 관계 설정을 해보자! "0개 이상의 댓글은 1개의 회원에 의해 작성될 수 있음" 목차 모델 관계 설정 CREATE READ DELETE 인증된 사용자에 대한 접근 제한하기 1. 모델 관계 설정 Comment와 User간 모델 관계 설정 Comment 모델에 User 모델을 참조하는 외래 키 작성 앞에서 USER - ARTICLE 모델 관계 설정 때와 마찬가지로 기존에 존재하던 테이블에 새로운 컬럼이 추가되어야 하는 상황이기 때문에 migrations 파일이 곧바로 만들어지지 않고 일련의 과정 필요 첫 번째 화면 기본적으로 모든 컬럼은 NOT NULL 제약조건이 있기 때문에 데이터가 없이는 새로 추가되는 외래 키 필드 user_id가 생성되지 않음 그래서 ..
2022.10.12
no image
[DB with Django] N:1 (Article - User)
앞에서는 Comment(N)와 Article(1) 모델 간 관계를 설정하였다. 이번엔 Article(N)과 User(1) 간 관계를 알아보자 "0개 이상의 게시글은 1개의 회원에 의해 작성될 수 있음" 목차 Referencing the User model CREATE Delete Update Read 1. Referencing the User model Django에서 User 모델을 참조하는 방법 settings.AUTH_USER_MODEL 반환 값 : 'accounts.User' (문자열) User 모델에 대한 외래 키 또는 M:N 관계를 정의할 때 사용 models.py의 모델 필드에서 User 모델을 참조할 때 사용 get_user_model() 반환 값 : User Object (객체) 현재 활..
2022.10.12