[Django] 기초

윤경·2021년 11월 1일
1

Django

목록 보기
7/8
post-thumbnail

앞으로의 회의를 위한 벼락치기^^;⚡️


구성요소

  • urls.py
    : 사용자가 URL로 Django에 접근하면 Django는 URL로 URL 규칙을 보고 내부에서 일치하는 view를 찾아 연결해줌

  • wsgi.py
    : (Web Server Gateway Interface)

  • asgi.py
    : (Asynchronous Server Gateway Interface)
    Django-channels를 사용할 때 알아야 하는 개념

  • manage.py
    : 장고의 다양한 명령어를 실행하기 위한 파일로 임의로 변경하지 않도록 주의

  • settings.py
    : 프로젝트 관련 여러 설정들이 모두 존재

MVT 패턴

MVC

: (Model-View-Controller)
Model(데이터), View(사용자), Controller(데이터 처리 로직)를 구분해 한 요소가 다른 요소들에게 영향을 주지 않도록 설계하는 방식

MVT

: MVC 패턴을 파이썬에서 개념은 그대로, 용어는 다르게 받아들인 것

View = Template
Controller = View
MVC = MVT

  • Model
    : DB에 저장되는 데이터

  • View
    : (data를 다루는 logic) 실질적으로 프로그램 로직이 동작해 데이터를 가져오고 적절하게 처리한 결과를 템플릿에 전달

  • Template
    : 사용자에게 보여지는 UI 부분

처리 과정

클라이언트의 요청
→ URLconf를 이용해 URL 분석
→ URL 분석 결과를 통해 URL에 대한 처리를 담당할 뷰 결정
→ 뷰는 자신의 로직을 실행하며, DB처리가 필요하면 모델을 통해 처리, 그 결과를 반환받음
→ 뷰는 로직 처리가 끝나면 템플릿을 사용해 클라이언트에 전송할 HTML 파일 생성
→ 뷰는 최종 결과로 HTML 파일을 클라이언트에 보내 응답

모델-모델 관계

Model(models.py)

Many-to-Many

: 저자 - 책
한 명의 저자는 여러 책을 쓸 수 있고, 한 권의 책 또한 여러 명의 저자가 있을 수 있음

Many-to-One

: 주문 - 사용자
한 명의 사용자가 여러 주문을 할 수 있음

One-to-One

: 주민등록증 - 사람
한 사람은 주민등록증을 딱 한개만 가질 수 있음

ForeignKey

: relation을 나타내기 위한 별도의 키
테이블 하나와 다른 테이블이 연결되는 키

프로젝트

python 버전 변경

~ echo alias python="python3" > ~/.zshrc
~ source ~/.zshrc
~ python --version
Python 3.8.9	// 버전이 바뀌었음

가상환경 생성

python3 -m venv [가상환경 명]

가상환경 활성화

cd bin
source ./activate

bin 폴더에 진입하지 않고 활성화 시키려면 source ./bin/activate

가상환경 비활성화

deactivate

django 설치

pip install django
python -m pip install --upgrade pip	// 업데이트 권유 warn이 떠서 해줬음
python -m django --version	// 버전이 뜨는지 확인

django 프로젝트 생성(in 가상환경)

cd [루트 디렉토리]
mkdir [프로젝트 명]
cd [프로젝트 명]
django-admin startproject config .	// 현재 디렉토리를 장고 프로젝트로 설정. 필요한 설정 파일을 config 폴더에 설치

서버 구동

python manage.py runserver

CRUD

: create, read, update, delete
웹 프레임워크를 만들 때 필수적으로 작동해야 하는 기능

model.py

: model.py에 만들고싶은 data를 넣는다.

그리고 model.py를 작성했으면 migration 해주어야 한다.

python manage.py makemigrations
python manage.py migrate

참고
참고
참고

실습
실습

참고

profile
개발 바보 이사 중

0개의 댓글