본문 바로가기
Study/Django

[Django] 3. View 작성 및 URL Mapping

by DevJaewoo 2021. 11. 16.
반응형

 

Intro

이번 시간에는 Django에서의 View 작성URL Mapping 방법에 대해 알아보겠습니다.


Django APP 생성

아래의 명령어를 실행하여 Django APP을 생성해줍니다. 

python manage.py startapp app_name

 

전 app_name 대신 reviews라는 이름으로 생성하겠습니다.

python manage.py startapp reviews

 

명령어를 입력하고 잠시 기다린 후 아래와 같이 reviews라는 폴더가 생성되면 성공입니다.

프로젝트 생성 결과


View 작성

이제 APP에 HTTP 요청에 응답하기 위한 view를 작성해야 합니다.

 

생성한 APP 패키지의 views.py를 열어줍니다. 초기의 views.py는 다음과 같습니다.

 

views.py

from django.shortcuts import render

 

views.py에 아래의 함수와 import를 추가하여 View를 작성합니다.

이제 클라이언트의 요청으로 인해 아래의 함수가 호출될 시 HTTP로 "Hello, world!"라는 문자열을 응답해주게 됩니다.

from django.http import HttpResponse

def index(request):
	return HttpResponse("<h1>Hello, world!</h1>")

 

views.py

from django.http import HttpResponse
from django.shortcuts import render

def index(request):
	return HttpResponse("<h1>Hello, world!</h1>")

URL Mapping

이제 위에서 작성한 View를 URL에 매핑해줍니다.

 

프로젝트 폴더의 urls.py를 열어줍니다. 초기의 urls.py는 다음과 같습니다.

 

urls.py

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

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

 

urls.pyurlpatterns 리스트 내부에 아래의 값을 추가해줍니다.

아래의 코드를 추가하기 위해 reviews 패키지를 import 해줘야 합니다.

path('index/', reviews.views.index),

 

위의 코드는 사용자가 'index' URL로 접근할 시 reviews APP의 views.py 내부에 있는 index 함수를 호출하고,

함수의 반환값을 응답하도록 Mapping 해줍니다.

 

※ URL 매핑 시 /index/ 로 설정하면 안됩니다. /index/ 로 설정할 경우 localhost:8000//index와 같이 슬래시를 두번 써야 합니다.

 

urls.py

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

import reviews.views

urlpatterns = [
    path('admin/', admin.site.urls),
    path('index/', reviews.views.index),
]

결과 확인

서버를 재시작하고 http://localhost:8000/index에 접근하면 아래와 같이 Hello, world!가 뜨는것을 확인할 수 있습니다.

프로젝트 실행 결과


질문이나 개선사항은 언제든지 댓글로 남겨주세요.

이상으로 포스팅을 마치겠습니다.

반응형