django 개발환경 구축이 끝났으니 이제 본격적으로 게시판(Jump to Django 에서는 pybo라고 명명)을 만들어나가며 django의 기능들을 익혀나가기로 한다.  이번에는 url과 view에 대해 알아본다.

 

1. 앱(app)의 생성

 이전 파트에서는 django의 프로젝트를 생성하여 서버를 구동하고 사이트에 접속하여 초기화면이 나오는 것을 확인하였다.  이제 우리가 원하는 화면을 띄우기 위한 작업을 할 차례이다.  이를 위해서는 app을 생성할 필요가 있다.  

django-admin startapp pybo

 

django-admin(django관리자) 명령어를 사용하여 앱을 생성한 뒤 생성된 앱(디렉토리)으로 이동하여 내용물을 확인해보면 위와같은 파일들이 생성된 것을 확인할 수 있다. (forms.py 따로 추가한 파일이기에 처음에는 존재하지 않는다.)

 

 

2. config\urls.py,  pybo\views.py 파일의 수정

 이제 서버를 구동한 뒤 http://localhost:8000/pybo 로 접속하면 우리가 원하는 화면이 나오도록 해야한다. 

config\urls.py 파일을 열어 다음과 같이 수정한다.

이와같이 수정하면 localhost:8000/pybo/ 가 요청되었을 때 pybo\views.py 에 정의된 index 메소드를 실행하게된다.

 

다음은 pybo\views.py에 가서 실행될 index 메소드를 정의한다.  여기서는 단순히 문자열 하나를 출력하는 수준의 기능만을 구현한다.

 

이제 사이트에 접속해보면 Hello Pybo가 출력되는 것을 확인할 수 있다.

 

3. url의 분리

 프로젝트 전체의 url 매핑 파일인 config\urls.py에서 위와 같이 매핑을 추가하면 pybo 앱의 기능이 추가될 때마다 config\urls.py를 수정해야 하는데, 이는 별로 좋은 방식이 아니다.  pybo 앱의 내부에도 urls.py 파일이 있는데, 여기에 pybo/ 이후의 매핑을 추가한 뒤 config\urls.py 에서는 pybo/ 로 시작하는 url의 매핑에 pybo의 urls.py를 사용하도록 하는 것이 바람직하다. 

 

위와 같이 django.urls.include 를 import 한 뒤 pybo/ 의 매핑에 pybo\views.py의 인덱스 메소드 대신 include('pybo.urls') 를 넘겨준다.  이제 pybo/ 로 시작하는 url의 매핑은 pybo\urls.py에 정의된 내용을 토대로 이루어지기 때문에 pybo에 기능을 추가하더라도 config\urls.py 를 수정할 일은 없어졌다.

 

다음은 pybo\urls.py 를 위와 같이 수정해준다.  실행했을때의 결과는 전과 달라진게 없지만 pybo의 기능추가를 위해 config\urls.py 파일을 수정할 필요가 없어졌기에 구조적으로는 더욱 깔끔해졌다.

+ Recent posts