분류 전체보기 314

Django serializer 활용하기 - advanced

[Reminder] What is serializer?Django의 Serializer는 Django에서 모델 인스턴스나 쿼리셋을 다양한 데이터 형식으로 변환하는 데 사용됩니다. 이를 통해 Django 애플리케이션에서 데이터를 직렬화하고 역직렬화하며 클라이언트와 서버 간의 데이터 교환에 사용됩니다. One-To-One , One-To-Many , Many-To-Many 관계가 형성된 상태에서의 serializer 작성은 더 신경써야 할 부분이 있다 User - UserProfile 모델 간 OneToOne 관계 (필드 추가해 확장한 Wrapper 클래스 느낌이다)from rest_framework import ModelSerializerfrom django.contrib.auth.models import..

web/django 2024.05.14

Django 모델 생성하고 Many-To-Many 관계 형성하기

User 모델과 Post 모델이 존재한다고 할 때, 좋아요 기능을 구현해보자- 하나의 Post에 여러 User가 '좋아요'를 누를 수 있음- 한 User는 여러 개의 Post에 '좋아요'를 누를 수 있음 => 즉 User 모델과 Post 모델은 Many-to-Many로 연결되어있으며 Like가 그 중계테이블이다. Django에서 ManyToMany 관계를 만드는 세 가지 방법 1️⃣ 중계 테이블을 직접 만들고, 해당 테이블이 Foreign Key로 두 개의 모델을 가리키는 방법2️⃣ 연결해야하는 모델 중 하나에 ManyToManyField를 사용하여 Django가 자동으로 중계 테이블을 만들도록 하는 방법3️⃣  1+2 방법, 중계 테이블을 만들고 ManyToManyField에 직접 만든 중계 테이블을 ..

web/django 2024.05.14

Django 모델 생성하고 One-To-Many 관계 형성하기

Post 모델을 이미 생성한 상태라고 가정. django-admin startapp account새로운 app을 만들고요 INSTALLED_APPS = [ ... 'account', # 추가("account.apps.AccountConfig"도 가능)]프로젝트 serttings.py도 수정을 해야겠죠 사실 장고에서는 기본적으로 User 모델을 제공하지만 이 모델은 최소한의 기본적인 기능만을 제공따라서 기본 field 이외의 커스터마이징이 필요한 경우 이를 확장해서 사용from django.db import modelsfrom django.contrib.auth.models import User# Create your models here.class UserProfile(model..

web/django 2024.05.13

데이터베이스 핵심 개념들

기본키- 테이블에서 행의 식별자로 이용되는 열을 (key)또는 기본 키(primary key)라고 합니다- 테이블에서 한 행을 고유하게 식별할 수 있는 정보를 의미 외래키- onetomany, manytomany 등의 관계에서 다른 테이블을 가리키기 위해 가지고 있는 다른 테이블의 Primary key- foreign key는 하나의 테이블에서 고유하게 존재하는 개념이 아니라, 두 테이블의 관계에서 비롯된 개념 OneToOne테이블의 한 행과 다른 테이블의 한 행이 1:1로 대응되는 관계입니다.일반적으로는 아래와 같은 상황에 사용될 수 있습니다.한 테이블에 데이터를 몰아넣는 게 효율적이지 않을 때보안을 위해 일부 데이터를 따로 관리하고자 할 때onetoone 관계에서 두 테이블을 연결하기 위해서는 반드시..

web/django 2024.05.13

Django SWAGGER 이용해 API 명세 작성하기

pip install -U drf-yasg # 전역으로 설치pip freeze > requirements.txt # 버전정보 저장 설치하시죠 INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'post.apps.PostConfig', # 'post' 라고만 적어도 됨 'drf_yash',] seminar/settings.py 에서 해당 앱을 등록해주고 from django.contrib imp..

web/django 2024.05.08