전체 글 312

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

Django View 설계하기

HTTP Request MethodGET : 데이터 조회POST:  요청 데이터 처리, 주로 등록에 사용PUT : 데이터를 대체(덮어쓰기), 해당 데이터가 없으면 생성PATCH : 데이터 부분 변경 (PUT이 전체 변경, PATCH는 일부 변경)DELETE : 데이터 삭제HEAD : GET과 동일하지만 메시지 부분(body 부분)을 제외하고, 상태 줄과 헤더만 반환OPTIONS : 대상 리소스에 대한 통신 가능 옵션(메서드)을 설명(주로 CORS에서 사용)CONNECT : 대상 자원으로 식별되는 서버에 대한 터널을 설정TRACE : 대상 리소스에 대한 경로를 따라 메시지 루프백 테스트를 수행C, U의 경우 data를 request Body에 넣어서 JSON 형태로 보내준다 cf) why JSON?가볍고 ..

web/django 2024.05.07

Django model 생성하고 설정하기

Django 앱 생성하기- 프로젝트를 기능 단위로 쪼갠 덩어리 (웹 애플리케이션의 구성 요수, 하나의 기능적 단위)django-admin startapp post 이렇게 post라는 앱을 생성하고 seminar/settings.py 파일을 수정해서 installed app 리스트에 추가함INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'post.apps.PostConfig', # 'post' 라고..

web/django 2024.05.07