본문 바로가기
Django(Python)

Django

by 승환파크 2023. 5. 26.

파이썬 기반의 웹 풀스택 프레임워크로 Django 만으로 웹 개발을 처음부터 끝까지 완성해낼 수 있다.

하지만 다른 프레임워크에 비해 자유도가 낮다.

건드릴 수 있는 부분이 적다는 것은 몇 가지 건드리지 않아도 웹 어플리케이션이 완성된다는 의미로 초보자들에게 적합한 프레임 워크이다.

 

Django를 사용중인 곳

  • 인스타그램
  • 번개장터
  • 숨은고수
  • 헤이딜러
  • 라프텔

 

장고를 사용하기 전에 가상 환경 만들기

1. 터미널에서 가상환경 리스트 확인하기

conda env list

 

2. 가상환경 만들기

conda create -n 가상환경이름
# -n : 이름을 지정하는 옵션

 

3. 가상 환경을 다 만들었다면 다시 확인하기

conda env list

 

4. 가상환경 실행하기

○ 윈도우

conda activate myvenv

○ 맥북

source activate myvenv

 

실행이후 리스트 확인을 해보면 별표로 사용중인 가상환경을 확인할 수 있다.

 

장고 설치하기

pip install django

 

프로젝트를 설치할 경로로 이동하기

 

프로젝트 실행(설치)

django-admin startproject myweb .

 

Django로 app 생성하기

python manage.py startapp photo

 

Django 서버 실행하기

python manage.py runserver

위의 명령어로 서버를 실행시키면 아래의 사진처럼 서버ip주소와 포트번호가 나오게 된다.

 

실행시킨 서버 사이트 접속하기

위의 콘솔창에서 확인한 주소(http://127.0.0.1:8000)으로 접속을하면 아래 사진과 같은 화면이 출력된다.

 

6. 가상환경 종료하기

conda deactivate

 

MVT 패턴

Django 에서는 MVT 패턴을 사용한다.

어떠한 패턴으로 개발을 진행한다는 것은 작업에 어느정도 규칙과 정해진 방식이 있고, 그 방식을 따라가며 중간중간 방식이 요구하는 내용으로 내용을 채워 넣으면서 개발을 진행한다는 개념이다.

개발 패턴에는 여러가지 종류들이 있으며 코드들이 각자 자기가 맡은 역할만을 온전히 수행하고, 서로 독립된 형태로 동작하는 구조로 프로젝트를 만들면 이후 프로젝트를 유지보수하게 되더라도 전체적인 흐름을 파악하기가 쉽다.

 

MVT패턴

  • Model : 앱의 데이터와 관련된 부분이다.
  • Template : 사용자에게 보이는 부분이다.
  • View : Model과 Template 사이에서 Model의 데이터를 Template로 전달하고 Template에서 발생하는 이벤트를 처리하는 부분이다.

  1. 유저가 특정 url로 요청을 보낸다.
  2. 해당 url과 매핑된 뷰를 찾는다.
  3. 호출된 뷰는 요청에 따라 적절한 로직을 수행하며 그 과정에서 모델에게 CRUD를 지시한다.
  4. 모델이 DB와 소통하며 CRUD를 수행한다.
  5. 뷰는 지정된 템플릿과 렌더링을 한다.
  6. 최종 결과를 응답으로 반환한다.

 

Django Model

모델은 데이터와 관련된 부분을 다루는 영역으로 데이터베이스에 저장될 데이터의 모양을 정의하고 관련된 일부 기능을 설정해주는 영역이다.

만약 사용자가 있다고 가정할 때 사용자를 구성하기 위해서는 아이디, 이름, 비밀번호, 이메일, 나이, 성별 등이 정의되어야 한다.

위의 예시처럼 데이터의 특징들을 뽑아 이를 구성요소로 하는 것을 모델링 이라고 한다.

개체를 모델링한 결과를 모델이라고 한다.

위 예시의 사용자는 모델이고 그 내부에 있는 아이디, 이름 등은 모델의 구성요소 또는 속성 이라고 한다.

모델은 데이터베이스의 테이블과 같은 구조로 이루어져 있으며 모델 형태의 데이터들을 데이터베이스에 적용시키면 데이터베이스 테이블이 된다.

모델을 데이터베이스에 적용시키는 과정을 마이그레이션(Migration)이라고 한다.

 

Django 모델 생성

파이썬에서는 모델을 하나의 클래스로 정의한다.

각 모델의 클래스들은 models.py 파일에서 작성해준다.

속성을 정의하고 각 속성에 대한 세부 설정을 진행한다.

 

Django 필드 종류

  • CharField : 문자열(길이제한 필요)
  • IntegerField : 정수
  • TextField : 문자열(길이제한 필요 없음)
  • DateField : 날짜
  • DateTimeField : 날짜 + 시간
  • FileField : 파일
  • ImageField : 이미지파일
  • Foreign Key : 외래키(관계)
  • OneToOneField : 일대일 관계
  • manyToMany : 다대다 관계

 

Djnago 모델 적용

모델에  변화가 생겼을 때는 항상 마이그레이션을 통해 프로젝트의 모델에 변경 사항을 적용시켜야 한다.

 

마이그레이션 과정

  1. makemigrations : 모델을 변경한 내용을 기록하여 파일로 만들어주는 과정
  2. migrate : makemigrations에서 생성된 파일을 실제로 실행시켜 데이터베이스에 변경사항을 적용해주는 과정

'Django(Python)' 카테고리의 다른 글

Django 프로젝트 구성  (0) 2023.05.30