Django - Preview
K-Digital Training에서 이미 Django를 배운 바가 있다. 하지만 그것도 시간이 지나면서 다 잊어버린 듯하다. 다시 복습, 정리하면서 개념을 잡고 가자.
Django 설치
- venv 가상 환경 만들기
$ 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>
Django의 MVT Pattern
MVT = Model, View, Template
- User로부터 어떠한 요청이 들어오면,
- URL에서 요청을 해석하여, View와 연결.
- View에서는 들어온 요청을 Model, Template를 통해 처리한다.
- Model에서는 DB(데이터 베이스)를 ORM(Object Related Model)구조로 관리하는 역할을 한다.
- Template에서는 HTML + template언어를 사용하여 UI를 관리하는 역할을 한다.
View
-
일단 setting.py에서 application 목록에 만든 앱을 추가하여 매니저에서 앱으로 인식할 수 있도록 만든다.
-
App의 view.py를 다음과 같이 작성하여 'hello world!'띄우도록 만든다.
- index 함수의 경우, 'requset' 요청을 받아 실행된다.
- HttpResponse() 참고 는 조금 더 공부해봐야할 것 같다.
-
urls.py에서 다음과 같이 작성하여 '127.0.0.1/<port_num>/' 라는 요청이 들어왔을 때, app/views의 index함수가 실행되도록 한다.
-
127.0.0.1/<port_num> 에 접속하면 다음과 같은 페이지를 볼 수 있다.
Admin User
- urls.py에는 다음과 같이 '127.0.0.1/port/admin' 요청이 들어오면 django.contrib의 admin.site.urls(서버의 관리자 페이지)에 접근할 수 있게 되어있다
- 아래 명령어를 통해 migration(모델의 변경 사항을 저장하는 작업, 테이블을 생성하는 작업)한다.
$ python manage.py migrate
- 아래 명령어를 통해 superuser(관리자) 계정을 생성합니다. (아래 빨간 글씨의 경우, 비밀번호가 너무 짧다는 경고를 의미).
$ python manage.py createsuperuser
.
- '/admin' 요청을 통해 로그인 페이지에 접속하여 설정한 ID와 password를 입력하면, 관리자 페이지에 접속할 수 있게 된다.
Models
- 아래 그림과 같이 models.py를 이용하여 ORM(SQL과 같이 Relational DataBase에 속한다) 객체를 만들 수 있다.
- admin.py에 ORM객체를 등록하여 관리자 모드에서 모델을 관리할 수 있게 한다.
- 'makemigrations' 명령어를 통해 장고가 테이블 작업을 수행하기 위한 파일들을 생성한다. 그 후에 'migrate' 명령어를 통해 테이블이 생성된다.
python manage.py makemigrations
python manage.py migrate
- 다음과 같이 관리자 페이지에 접속하여 ORM객체를 만들거나 변경할 수 있게 된다.
Models to Template, Template to Models
-
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 프로젝트를 만들어보면서 복습해보았다. 다음은 '점프 투 장고' 책을 볼 차례다.
Author And Source
이 문제에 관하여(Django - Preview), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@xcellentbird/Django-Preview저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)