[DRF] DRF 뜯어보기 #2

장서영·2022년 9월 7일

Django

목록 보기
8/16

1. 장고 프로젝트 생성 및 rest api 시작

📌 학습한 것 : 장고 프로젝트 및 앱 생성 방법

Django 기본 익히기

※ DRF 공부에 앞서, Django를 빠르게 복습해 보자!

  • Django 프로젝트 시작하기
    • 1) 가상환경 설정하기 : -m venv myvenv → source myvenv/Scripts/activate
    • 2) Django 설치하기 : pip install django
    • 3) 프로젝트 생성하기 : django-admin startproject 프로젝트명
    • 4) 앱 생성하기 : python manage.py startapp 앱명 (※ settings.py에 등록)
  • Django MTV 패턴
    • Model : 앱의 데이터와 관련된 부분을 다룸
    • Template : 사용자에게 보이는 부분을 다룸
    • View : Model의 데이터를 Template으로 전달하고 Template에서 발생하는 이벤트를 처리하는 부분을 다룸
  • Django Model
    • 기능 : 데이터베이스에 저장될 데이터의 모양을 정의, 관련된 일부 기능을 설정
    • 모델을 데이터베이스에 적용시키면 데이터베이스의 테이블이 됨
    • 필드 설정 : CharField, IntegerField, TextField, DataField, DateTimeField, FileField, ImageRield, ForeignKey, OnetoOneField, ManyToManyField
    • (수정된) 모델 적용 : python manage.py makemigrations → migrate
    • 모델 어드민 페이지 적용 : admin.py 안에 admin.site.register(클래스명)
  • Django Template

    • 기능 : 웹 페이지의 골격, HTML로 작성된 부분
    • 장고의 장점 : 템플릿 태그 { } - html상에서 파이썬 코드 데이터를 사용하는 것
  • Django View

    • 기능 : 장고의 뷰는 템플릿과 모델 사이를 이어줌(프론트엔드와 백엔드 사이의 데이터를 처리함)
    • 함수형 뷰 / 클래스형 뷰

📌 잘모르겠는 것들

  1. 함수형 뷰 / 클래스형 뷰 둘의 차이점?

해결을 위해 찾아본것

  • 함수형 뷰
    • 장점 : 간단한 구현, 읽기 쉬움, 명시적 코드 흐름, 데코레이터의 간단한 사용법
    • 단점 : 코드 확장 및 재사용이 어려움, 조건부 분기를 통한 HTTP 메소드 처리
  • 클래스형 뷰
    • 장점 : 쉽게 확장하고 재사용할 수 있는 코드, 다중상속과 같은 기술 사용 가능, 별도의 클래스 메소드로 HTTP 메소드 처리, 내장된 일반 클래스 기반 뷰
    • 단점 : 읽기 어려움, 암시적 코드 흐름, 부모 클래스의 숨겨진 코드, 믹스 인, 뷰 데코레이터 사용하려면 추가 가져오기 또는 메소드 재정의 필요

📖 학습 가이드라인

1. 장고 프로젝트 생성 및 rest api 시작

(Django 기본 점검하기)

  • 장고 first_proj 프로젝트를 생성해서 student 앱을 만들어 보자!
    ▶ 장고 패키지 설치 - 프로젝트 생성 - 앱 생성 - settings.py에 앱 등록하기

  • 장고 MTV 패턴의 동작 방식을 설명하라.
    ▶ Model - 앱의 데이터 관련 부분 / Template - 사용자에게 보이는 부분 / View - Model의 데이터를 Template으로 전달하고, Template에서 발생하는 이벤트를 처리하는 부분
    ▶ MTV 간 동작하는 흐름 그림으로 표현

  • models.py에서 수정한 모델을 데이터베이스에 반영하는 명령어는?
    ▶ python manage.py makemigrations -> python manage.py migrate

  • 이름, 학번, 전화번호를 필드로 갖는 '학생' 모델을 Studnet라는 클래스로 정의하라.
    ▶ (코드로)

profile
하루살이 개발자

0개의 댓글