본문 바로가기

레퍼런스/장고 튜토리얼

장고(Django) 첫번째 뷰 쓰기.

첫 번째 뷰를 써봅시다. polls/view.py 파일을 열어서 아래 코드를 넣으세요.

 

# polls/views.py

from django.http import HttpResponse

def index(request):
	return HttpResponse("Hello, world. You're at the polls index.")

 

이게 장고에서 가장 간단하게 뷰를 만드는 방법입니다. 이제 이 뷰를 불러오기 위해서 URL 매핑을 해야합니다.

 

URL 설정을 하기 위해 polls 디렉토리에 urls.py 파일을 만들어줍니다.

 

polls/urls.py에 아래 코드를 입력합니다:

# polls/urls.py

from django.urls import path

from . import views

urlpatterns = [
	path('', views.index, name='index'),
]

 

다음 단계는 루트 URL 설정에 polls.url 모듈을 가리키게 하는 것입니다. chem/urls.py 안에서 django.urls.include를 추가로 import 해주고 urlpatterns 리스트에 include()를 추가해줍니다.

 

# chem/urls.py

from django.contrib import admin
from django.urls import include, path

urlpatterns = [
	path('polls/', include('polls.urls')),
    	path('admin/', admin.site.urls),
]

 

include() 함수는 다른 URL 설정을 참조할 수 있게 허락해줍니다. 장고는 언제든  include()를 마주치면, URL의 해당 부분과 일치하는 부분을 잘라내고 추가 처리를 위해 나머지 문자열을 included된 URL 설정으로 보냅니다.

 

include()의 기본 개념은 URL을 쉽게 plug-and-play할 수 있도록 하는 것입니다. polls가 URL 설정에 있는 이상, 어느 경로에 있는 "/polls/"여도 자연스럽게 적용됩니다. "/fun_polls/", "/content/polls/" 어디에 있어도 말이죠.

 

$ python3 manage.py runserver

다 입력했으면 실행해봅시다.

 

원래 경로대로 가면 페이지를 찾을 수 없다고 나옵니다. 하지만 아래에 보면 다른 url 패턴들을 이미 추천해주고 있습니다. "polls/"와 "admin/"입니다.

 

"polls/" 경로로 들어가면 아까 제일 처음에 입력했던 구문을 확인할 수 있습니다.

 

path() 함수는 인자 네 개를 넘겨줍니다. 두 개는 필수적으로 입력되어야 합니다 : routeview, 나머지 두 개는 선택적입니다 : kwargs, 그리고 name.

 

 

path() 인자 : route

route는 URL 패턴 형태의 문자열입니다. request를 처리할 때, 장고는   urlpatterns에 있는 첫 패턴부터 리스트로 만들어둡니다. 그런 다음 요청된 URL과 각 패턴들을 비교해서 맞을 때까지 찾아나갑니다.

패턴은 GET과 POST 매개변수 혹은 도메인 이름을 검색하지 않습니다. 예를 들어, request가 https://www.example.com/myapp/으로 향할 때, URL 설정은 myapp/을 찾습니다. request가 https://www.example.com/myapp/?page=3로 들어온다면 URL 설정은 다시 myapp/을 찾습니다.
path() 인자 : view

장고가 일치하는 패턴을 찾으면 HttpRequest 객체를 첫 번째 인자로 사용하고 경로에서 "잡힌" 값을 키워드 인자로 사용하여 지정된 뷰를 호출합니다. 
path() 인자 : kwargs

임의의 키워드 인수는 딕셔너리에서 타겟 뷰로 전달될 수 있습니다.
path() 인자 : name

URL의 이름을 지정하면 장고의 다른 곳 어디든, 특히 템플릿 내에서 명확하게 참조할 수 있습니다. 이 강력한 기능을 사용하면 단일 파일을 사용해 URL 패턴을 전체적으로 변경할 수 있습니다.