K-Digital Training에서 이미 Django를 배운 바가 있다. 하지만 그것도 시간이 지나면서 다 잊어버린 듯하다. 다시 복습, 정리하면서 개념을 잡고 가자.
$ python3 -m venv dj-preview
$ source bin/activate
django 설치
프로젝트 생성
$ django-admin startproject <project_name>
$ cd <project_name>
$ python3 manage.py runserver
설치 및 프로젝트 생성 성공 화면.
App 생성
$ django-admin startapp <app_name>
MVT = Model, View, Template
일단 setting.py에서 application 목록에 만든 앱을 추가하여 매니저에서 앱으로 인식할 수 있도록 만든다.
App의 view.py를 다음과 같이 작성하여 'hello world!'띄우도록 만든다.
urls.py에서 다음과 같이 작성하여 '127.0.0.1/<port_num>/' 라는 요청이 들어왔을 때, app/views의 index함수가 실행되도록 한다.
127.0.0.1/<port_num> 에 접속하면 다음과 같은 페이지를 볼 수 있다.
$ python manage.py migrate
$ python manage.py createsuperuser
.
python manage.py makemigrations
python manage.py migrate
python은 html을 그냥 인식할 수 없기 때문에, 아래 그림과 같이 settings.py에서 DIRS에 template의 경로를 넣어주어야 한다. 'BASE_DIR'는 settings.py 위쪽에 프로젝트 경로가 선언되어있다.
forms.py파일을 만들고 데이터를 입력 받기 위한 form 클래스를 만든다. 그리고 Meta 클래스를 만들어 어떤 모델의 어떤 칼럼과 연결되어 있어있는지 지정해놓는다.
views.py에는 view함수를 다음 그림과 같이 만든다. 여기에서 중요한 점은 POST를 통해서 데이터를 받아온다는 것과 render함수를 통해 template와 이어주고, dictionary형태로 template에 정보를 보낼 수 있다는 것이다.
urls.py에서 views의 view함수를 어떤 명령이 들어왔을 때 보여줄 지 설정해놓는다.
coffee.html은 다음과 같이 form 형태로 POST를 method로 지정하여 모델을 불러오거나 submit type의 버튼을 통해 view에 모델을 보낼 수도 있다.
다음과 같이 Template(xml)과 Model(관리자 페이지)에 적용이 되는 결과를 확인할 수 있다.
이렇게 간단한 Django 프로젝트를 만들어보면서 복습해보았다. 다음은 '점프 투 장고' 책을 볼 차례다.