Django란? Python을 기반으로 한 웹 구축 라이브러리
Django는 MTV 모델을 사용하며 의미는 다음과 같다.
투표 어플리케이션 생성
투표 어플리케이션 생성 예시를 통해 Django를 더 깊게 알아보자.
해당 실습은 이클립스오 파이썬을 통해 기본적인 환경설정과 계정생성까지 완료했다는 가정 하에 진행된다.
프로젝트 우클릭-Django-Create application을 눌러준다.
원하는 어플리케이션 이름을 만들어준다.
위와 같은 여러 리스트가 생성된다. 우선 settings에 들어간다.
30~40줄에 있는 INSTALLED_APPS에 방금 설치한 application 이름을 추가시켜준다.
application 생성이 완료되었다면 다음 application의 기능을 구현해보자. Django는 MTV라는 모델을 사용하여 각 기능들을 구분한다.
M: Model을 의미하며 데이터 베이스에 저장되는 데이터를 뜻한다. ex) oralce, mysql
T:Template을 의미하며 사용자에게 보여지는 부분을 뜻한다. ex)HTML, CSS, Java Script
V:실질적으로 프로그램 로직이 동작, 데이터를 가져오고 템플릿에 전달한다.
MODEL
모델은 데이터를 정의하는 부분이며 models.py라는 곳에서 정의가 가능하다.
models.py를 통해서 데이터를 정의할 때는 몇가지 규칙이 있다.
테이블을 만들 때는 Class 명으로 정의하며, 특정 데이터 유형을 정의하고 싶을 때는 변수를 통해 정의한다.
이처럼 형식을 지정하고
반드시 vote(만든 어플리케이션)의 이름으로 make migration과 migration을 진행해준다
만들어진 데이터를 확인하고 싶다면
admin.py에 들어가서 다음과 같은 3줄을 추가해준다.
127.0.0.1/admin에 들어가 로그인 시 다음과 같이 객체가 추가된 것을 확인 가능하다. add를 눌러보자.
적절한 질문과 날짜를 입력해주고 save and add another을 누르면 질문을 더 추가적으로 작성할 수 있다. 여러가지 질문을 작성해보자.
이번엔 Choices의 add를 눌러서
각 질문에 맞는 답변을 여러가지 입력해주자. 여기서 Q의 Question object(1)은 이전에 내가 등록했던 첫번째 질문이다.
만약 두번째 질문의 답변을 입력하고 싶다면 Question object(2)로 바꿔주자.
이로써 데이터의 입력까지 완료하였다. 다음은 해당 데이터를 Template에 전송해주는 view를 공부해보자.
view
view는 앞서 model에서 만든 data를 가공/처리 후 Template으로 보내주는 역할을 하며, views.py에서 정의한다.
view는 기능을 함수 형식으로 정의할 수 있다.
Template을 따로 보관하기 위한 폴더가 필요하다.
vote밑에 새로 templates이라는 폴더를 만들고
또 그 밑에 vote라는 같은 이름의 폴더를 만들어주자.
또 그 밑에 other을 클릭해서
HTML 파일을
앞서 설정해둔 이름으로 만들어 주자.
Template은 HTML 파일을 기반으로 작성되며 중간 중간 파이썬 형식과 합쳐서 사용한다.
마지막으로 해당 화면을 확인하기위해 URL을 지정해줘야한다. vote 폴더가 아닌 프로젝트 폴더에 있는 urls.py를 사용하여 url 정의가 가능하다.
url의 정의는 다음 코드를 추가하면 된다.
즉 결과로
127.0.0.1:8000/vote를 입력 시 위와 같은 화면이 뜰 수 있다.
urls.py는 프로젝트 폴더에 있기때문에 관리가 쉽지 않다. 다양한 app의 url을 한 곳에서 관리하는 것은 굉장히 복잡하기때문에 보통은 각 application별로 하위 url 파일을 따로 만들어서 관리한다.
이와 같이 설정을 하고
파이썬 모듈을 새로 만들어
앞서 include 안에 입력했던 이름(urls)로 만들어준다.
해당 urls.py 안에다가는
이로써 MVT 모델을 살펴보았다. 다음 시간에는 조금 더 기능적인 부분을 구현하는 것에 집중하여 진행하겠다.
'프로그래밍 > python django' 카테고리의 다른 글
django social 로그인 구현 (0) | 2018.12.29 |
---|---|
django 로그인 기능 구현 (0) | 2018.12.24 |
투표 어플리케이션을 통해 django 이해하기-3 (0) | 2018.12.23 |
투표 어플리케이션을 통해 django 이해하기-2 (2) | 2018.12.21 |