Django - Preview

Michael Kim·2021년 7월 12일
0

K-Digital Training에서 이미 Django를 배운 바가 있다. 하지만 그것도 시간이 지나면서 다 잊어버린 듯하다. 다시 복습, 정리하면서 개념을 잡고 가자.

Django 설치

  1. venv 가상 환경 만들기
$ python3 -m venv dj-preview
$ source bin/activate
  1. django 설치
    image

  2. 프로젝트 생성

$ django-admin startproject <project_name>
$ cd <project_name>
$ python3 manage.py runserver

image

  1. 설치 및 프로젝트 생성 성공 화면.

  2. App 생성

$ django-admin startapp <app_name>

Django의 MVT Pattern

MVT = Model, View, Template

  1. User로부터 어떠한 요청이 들어오면,
  2. URL에서 요청을 해석하여, View와 연결.
  3. View에서는 들어온 요청을 Model, Template를 통해 처리한다.
  4. Model에서는 DB(데이터 베이스)를 ORM(Object Related Model)구조로 관리하는 역할을 한다.
  5. Template에서는 HTML + template언어를 사용하여 UI를 관리하는 역할을 한다.

View

  1. 일단 setting.py에서 application 목록에 만든 앱을 추가하여 매니저에서 앱으로 인식할 수 있도록 만든다.

  2. App의 view.py를 다음과 같이 작성하여 'hello world!'띄우도록 만든다.

  • index 함수의 경우, 'requset' 요청을 받아 실행된다.
  • HttpResponse() 참고 는 조금 더 공부해봐야할 것 같다.
  1. urls.py에서 다음과 같이 작성하여 '127.0.0.1/<port_num>/' 라는 요청이 들어왔을 때, app/views의 index함수가 실행되도록 한다.

  2. 127.0.0.1/<port_num> 에 접속하면 다음과 같은 페이지를 볼 수 있다.


Admin User

  1. urls.py에는 다음과 같이 '127.0.0.1/port/admin' 요청이 들어오면 django.contrib의 admin.site.urls(서버의 관리자 페이지)에 접근할 수 있게 되어있다

  2. 아래 명령어를 통해 migration(모델의 변경 사항을 저장하는 작업, 테이블을 생성하는 작업)한다.
$ python manage.py migrate
  1. 아래 명령어를 통해 superuser(관리자) 계정을 생성합니다. (아래 빨간 글씨의 경우, 비밀번호가 너무 짧다는 경고를 의미).
$ python manage.py createsuperuser

.

  1. '/admin' 요청을 통해 로그인 페이지에 접속하여 설정한 ID와 password를 입력하면, 관리자 페이지에 접속할 수 있게 된다.
    image

image


Models

  1. 아래 그림과 같이 models.py를 이용하여 ORM(SQL과 같이 Relational DataBase에 속한다) 객체를 만들 수 있다.

  2. admin.py에 ORM객체를 등록하여 관리자 모드에서 모델을 관리할 수 있게 한다.

  3. 'makemigrations' 명령어를 통해 장고가 테이블 작업을 수행하기 위한 파일들을 생성한다. 그 후에 'migrate' 명령어를 통해 테이블이 생성된다.
python manage.py makemigrations
python manage.py migrate
  1. 다음과 같이 관리자 페이지에 접속하여 ORM객체를 만들거나 변경할 수 있게 된다.

Models to Template, Template to Models

  1. python은 html을 그냥 인식할 수 없기 때문에, 아래 그림과 같이 settings.py에서 DIRS에 template의 경로를 넣어주어야 한다. 'BASE_DIR'는 settings.py 위쪽에 프로젝트 경로가 선언되어있다.

  2. forms.py파일을 만들고 데이터를 입력 받기 위한 form 클래스를 만든다. 그리고 Meta 클래스를 만들어 어떤 모델의 어떤 칼럼과 연결되어 있어있는지 지정해놓는다.

  3. views.py에는 view함수를 다음 그림과 같이 만든다. 여기에서 중요한 점은 POST를 통해서 데이터를 받아온다는 것과 render함수를 통해 template와 이어주고, dictionary형태로 template에 정보를 보낼 수 있다는 것이다.

  4. urls.py에서 views의 view함수를 어떤 명령이 들어왔을 때 보여줄 지 설정해놓는다.

  5. coffee.html은 다음과 같이 form 형태로 POST를 method로 지정하여 모델을 불러오거나 submit type의 버튼을 통해 view에 모델을 보낼 수도 있다.

  6. 다음과 같이 Template(xml)과 Model(관리자 페이지)에 적용이 되는 결과를 확인할 수 있다.


이렇게 간단한 Django 프로젝트를 만들어보면서 복습해보았다. 다음은 '점프 투 장고' 책을 볼 차례다.

profile
정리하고 복습하고 일기도 쓰고

0개의 댓글