1 분 소요

[출처 : 장고 공식문서]

설문조사 앱 만들기

  • 만들기에 앞서 4장에서 했던 mysite를 생성했는지 여부를 확인한다.

$ python manage.py startapp polls

mysite라는 프로젝트에 manage.py를 통해 새로운 앱을 생성해준다.

polls/
    __init__.py
    admin.py
    apps.py
    migrations/
        __init__.py
    models.py
    tests.py
    views.py

첫 번째 뷰 작성

from django.http import HttpResponse

def index(request):
return HttpResponse("Hello, world. You're at the polls index.")
  • 이전 장에서 설명했듯이 뷰는 보여지는 곳이다. 장고의 튜토리얼에서는 해당 문구를 불러오는 것으로 시작된다.
from django.contrib import admin
from django.urls import include, path

urlpatterns = [
    path('polls/', include('polls.urls')),
    path('admin/', admin.site.urls),
]
  • mysite안에 urls 파일을 수정해준다.
  • urls는 우리가 접속하려는 주소를 통해 특정 조건의 파일을 호출하는 형식이 가능하다.
  • include() 함수는 다른 URLconf들을 참조할 수 있도록 도와준다. 이때 장고가 include()를 만나게 되면, URL의 그 시점까지 일치하는 부분을 잘라내고, 남은 문자열 부분을 후속 처리를 위해 삽입된 URLconf로 전달한다.

path() 함수와 인수에 대해

  • path() 함수에는 2개의 필수 인수인 route와 view, 2개의 선택 가능한 인수로 kwargs와 name까지 모두 4개의 인수가 전달된다.
  1. route

    URL 패턴을 지닌 문자열이다. 요청이 처리될 때, 장고는 urlpatterns의 첫 번째 패턴부터 시작하여 일치하는 패턴을 찾을 때까지 요청된 URL을 각 패턴과 리스트의 순서대로 비교한다.

  2. view

    일치하는 패턴을 찾으면, HttpRequest 객체를 첫번째 인수로 하고, 경로로 부터 ‘캡처된’ 값을 키워드 인수로 하여 특정한 view 함수를 호출한다.

  3. kwargs

    임의의 키워드 인수들은 목표한 view에서 사전형으로 전달된다.

  4. name

    URL에 이름을 지으면, 템플릿을 포함한 장고 어디에서나 명확하게 참조가 가능하다.

    이 기능을 사용하여, 단 하나의 파일만 수정해도 프로젝트내의 모든 URL 패턴을 바꿀 수 있도록 도와준다.

태그:

카테고리:

업데이트: