본문 바로가기

BE/Django

[django] 웹페이지 만들기 (3) - 뷰 생성하기

인트로
파이썬으로 /index URL을 입력하면 간단한 뷰를 띄우는 것을 포스팅합니다.
장고의 뷰(View)는 웹애플리케이션이 동작하기 위한 로직을 담당하는데요.
아래에서 자세히 살펴보도록 하시죠.

목차
1. django URL 매핑 확인하기
2. django View 만들기

 

1. django URL 매핑 확인하기

먼저 장고에서 View를 생성하기 전에 URL 매핑이 잘 정의되어 있는 지 확인해 주세요 :)
* URL 매핑이 되어 있지 않으면, 주소 창에 index를 입력해도 정의한 뷰 함수가 실행되지 않습니다.
urls.py

from django.urls import path app_name = 'blog' urlpatterns = [ path('', views.index), ] 

 

2. django View 만들기

1) View 란 무엇인가?
장고의 뷰(View)는 웹애플리케이션의 "로직" 부분을 담당하여 동작합니다.
즉, 내 애플리케이션을 동작하게 하기 위해 CRUD(Create/Read/Update/Delete) 등 함수를 구현하는 곳입니다!
또한, django 는 MVT(Model-View-Template) 패턴에 기반하여 동작하는데요.
View는 유명한 패턴 중의 하나인 MVC 패턴의 Controller 역할을 수행한다고 보시면 됩니다 :)

2) HTTP Response
View 함수들은 HttpResponse 또는 Http404같은 에러들을 리턴할 수 있는데요. 아래와 같은 형식으로 사용합니다.
+) 잠깐 HTTP Request/Response에 대해 설명드리면,
HTTP Request는 클라이언트단에서 서버가 특정 동작을 취하게끔 만들기 위해 전송하는 메시지입니다.
HTTP Response 는 서버가 클라이언트에게 특정 동작에 대한 결과를 리턴하는 메시지입니다. (직무 면접때 물어봤던 경험)

def index(request): return HttpResponse(template.render(context, request))

 

장고는 return HttpResponse 등의 표현을 쉽게 쓸 수 있도록 render 함수를 제공하는데요.
일일히 HttpResponse 를 정의하지 않고도 쉽게 HttpResponse 에 응답할 수 있습니다.

def index(request): return render(request, 'blog/index.html', context)


3) View 정의하기
이제 view.py 에 index 함수를 정의해주도록 하죠. 다음과 같이 render 만 import 하여 편리하게 구현할 수 있습니다.

from django.shortcuts import render # Create your views here. def index(request): return render(request, "index.html")

 

[관련 게시글] 
[django] 웹 페이지 만들기 (1) 장고 설치하고 서버 구축하기
[django] 웹 페이지 만들기 (2) 프로젝트와 앱 생성하기
[django] 웹페이지 만들기 (3) - 뷰 생성하기