[Django] Tutorial - View & URL

5046 단어 djangodjango

View란? 앱의 로직을 담당하는 파일로 모델에서 필요한 정보를 받아와 템플릿에 전달하는 역할을 한다.

View

import json                          # Json 데이터를 처리하기 위해 임포트
from django.views import View        # 장고에 내장된 View 클래스
from django.http import JsonResponse # 서버 요청에 대한 응답을 Json으로 하기 위해

# 클래스형 View
class MainView(View):                # 장고에 내장된 View 클래스 상속
    def get(self, request):          # View 클래스에 내장된 메소드
        return JsonResponse({"Hello":"World"}, status=200)

? JSON JavaScript Object Notation의 줄임말로 자료를 주고 받을때 많이 쓰이는 데이터 타입 형식이다.

URL

- app/urls.py

from django.urls import path     # 장고에서 Url 경로를 처리하기 위한 모듈
from main.views  import MainView # Views.py의 MainView 클래스를 임포트

urlpatterns = [
    path('', MainView.as_view()) # 이 URL 패턴은 빈 문자열에 매칭
]
  • View를 호출하려면 View와 연결된 URL이 있어야 하고(이를 위해 URLconf가 사용되고 URLconf를 생성하려면) 앱 디렉토리에서 urls.py를 생성해야 한다.
    👉 즉, View에 맞는 각각의 url이 있어야 하고 그 url은 앱 디렉토리의 urls.py에서 만든다.
  • .as_view()는 http 메소드를 판별하여(GET, POST, ...) 그에 맞는 함수를 실행시켜주는 메소드이다.

- project/urls.py

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

urlpatterns = [
    path('polls/', include('polls.urls')), # polls라는 앱의 URLconf 참조
    path('admin/', admin.site.urls),
]
  • include() 다른 URLconf들을 참조할 수 있도록 도와준다.

- path()

  • route 필수인수
    URL 패턴을 포함하는 문자열로 요청을 처리할 때 장고는 urlpatterns의 첫번째 패턴부터 시작하여 일치하는 패턴을 찾을 때 까지 요청된 URL을 각 패턴과 비교한다.
  • view 필수인수
    일치하는 패턴을 찾으면 HttpRequest 객체를 첫번째 인수로 사용하고 경로에서 가져온 값을 키워드 인수로 사용하여 지정된 View를 호출한다.
  • kwargs 임의의 키워드 인수들은 목표한 View에 딕셔너리로 전달된다.
  • name URL의 이름을 지정하면 템플릿을 포함한 장고 어디에서나 명확하게 참조 할 수 있고 이 기능을 이용하여 하나의 파일만 수정해도 프로젝트 내의 모든 URL 패턴을 바꿀 수 있다.

좋은 웹페이지 즐겨찾기