crud 5

Class Based View (CBV)

Class Based View (CBV) Django와 Django REST Framework(DRF)에서 View를 작성하는 두 가지 방식FBV (Function Based View): 함수로 처리CBV (Class Based View): 클래스로 처리 CBV의 장점 HTTP 메서드별 처리(get(), post(), put(), delete() 등)를 메서드 단위로 분리할 수 있어 가독성과 유지보수성이 높아짐클래스 기반이라 공통 로직을 재사용하기 좋고, 확장성이 뛰어남DRF는 CBV를 더 쉽게 쓰기 위한 기본 클래스를 제공 CBV 클래스 종류 (DRF 기준)APIViewCBV의 기본 클래스 - 직접 메서드 정의 필요GenericAPIViewAPIView 기반 + 쿼리셋, 직렬화 등 기본 기능 내장Mix..

DRF Single Model CRUD API 구현

DRF의 ModelSerializer를 활용한 Django Model JSON 형태 직렬화단일 모델 기반 데이터 조회, 생성, 수정, 삭제하는 기본 API 구성 ModelSerializer는 Django의 ModelForm과 비슷한 역할을 함직렬화와 유효성 검사, 저장까지 전부 처리할 수 있어 매우 강력   urls.py & 기본 구조 설정 프로젝트 URL 연결# api_pjt/urls.pyfrom django.contrib import adminfrom django.urls import path, includeurlpatterns = [ path("admin/", admin.site.urls), path("api/v1/articles/", include("articles.urls")),] 앱..

Django - Admin Site 활용

Django Admin Site Django는 기본적으로 Admin Site(관리자 페이지) 기능을 제공레코드 조회레코드 생성레코드 수정레코드 삭제권한 설정검색 기능필터링정렬커스텀 UI 적용→ 서비스의 효율적 관리 가능  Django Admin Site 활성화 Django 프로젝트를 생성하면 기본적으로 admin 페이지가 포함돼있음 urls.py*admin 계정 생성python manage.py createsuperuser 최소 is_staff 권한 필요  admin에서 관리할 모델 등록  기본적으로 Django Admin Site에는 User 모델 등 기본적인 데이터만 제공추가로 앱에서 사용하는 모델을 관리하기 위해 관리자 페이지에서 사용할 모델 등록 필요각 앱의 admin.py에서 설정 가능  기본 ..

Django - MTV패턴을 활용한 C(Create)와 R(Read) 구현

Django의 MTV(Model-Template-View) 패턴은CRUD(Create, Read, Update, Delete) 작업을 명확하게 구현할 수 있도록 구조화되어 있음   C(Create) : 사용자 입력 폼과 데이터 저장 로직을 작성, 새로운 데이터를 데이터베이스에 저장R(Read) : 저장된 데이터를 데이터베이스에서 조회, 템플릿에 렌더링하여 사용자에게 표시연계 : Create에서 저장된 데이터를 Read에서 즉시 확인할 수 있도록 설계    모델 설계 앱(articles)내의 models.py - 데이터 구조 정의    View 정의 앱(articles)내의 views.py  Read(articles) : views.py에서 Model에 접근해 data를 가져와 Template으로 전달Cr..

Django - ORM(Object-Relational Mapping)

ORM(Object-Relational Mapping)  객체지향 언어(예: Python)의 객체를 사용해 데이터베이스를 조작할 수 있게 해주는 도구  • 객체지향 언어는 데이터를 클래스와 객체로 다루고,   관계형 데이터베이스는 테이블과 행으로 데이터를 관리→ 두 시스템 간의 개념적 차이를 줄이는 것이 ORM의 역할 ORM을 사용하면 SQL문을 직접 작성하지 않고도 Python 코드만으로 데이터베이스를 조작할 수 있음   ORM의 주요 사례 • Python: Django ORM, SQLAlchemy, Tortoise ORM • Java: JPA, Hibernate • Node.js: Sequelize Django 프로젝트에서는 별도의 언급 없이 ORM을 기본으로 사용(Django가 기본적으로 ORM기능..

728x90