이끼의 생각

Django Web (11) 장고 뷰 View 본문

파이썬 장고 웹 프레임워크

Django Web (11) 장고 뷰 View

IKKIson 2019. 5. 21. 03:34

지난 편에서 views에서 요청을 처리하는 소스를 구현하지 않아 에러가 발생했습니다. 그래서 urls 가 잘 작동되는지만 알기 위해 Hello World And Blog 문장만 출력했어요.


이번엔 View에 대해서 알아 보겠습니다.



장고 View


뷰(view) 는 애플리케이션의 "로직"을 담당합니다. 뷰는 이전에 만들었던 모델(Model)에서 필요한 정보를 받아와서 템플릿에 전달하는 역할을 합니다. 반대로 템플릿에서 사용자의 요청을 받아 모델이나 웹서버에 구현되어 제공할 수 있는 기능, 서비스들을 가져오기도 합니다. 


템플릿은 다음 장에서 만들어 볼 거에요. 


뷰는 Python 시작하기 장에서 했던 것보다 어려워보이지만, 파이썬 함수일 뿐이에요.


뷰는 views.py 파일 안에 있어 실제로 View를 views.py 에서 구현할 수 있습니다. 


우리는 이제 views를 blog/views.py파일 안에 추가할 거에요.




블로그 앱에 View 구현하기


먼저 만들어볼 내용은 view에서 템블릿인 html 파일을 호출하는 것을 만들어 볼겁니다.


이전에 만들었던 함수를 수정해봅시다.

- 경로 : 프로젝트명/blog/views.py

- 게시글 기준 위치 : IKKIsonDjango/blog/views.py


def post_list(request):

    return render(request, 'blog/post_list.html', {})



수정 전




수정 후




원래 의도대로 post_list라는 함수(def)를 만들었습니다. 이 함수는 요청(request)을 넘겨받아 render메서드를 호출합니다. 이 함수는 render 메서드를 호출하여 받은(return) blog/post_list.html 템플릿을 보여줍니다.


이제 파일을 저장하고, http://127.0.0.1:8000/ 로 접속해 확인해보세요.


하하.....에러가 또 발생했네요! 아래 내용을 함께 볼까요?




에러 메시지를 보니.... 말 그대로 템플릿이 존재하지 않아서 발생한 에러군요.

post_list함수에서 호출을 했으나 render 하여 반환할 템플릿이 없습니다.


지금까지 잘 따라 와주셨습니다. 


일단 이번 편에서 view에 대해서 알아보는 시간이니 views.py에서 post_list함수가 템플릿 render를 반환하는것까지 알아보았습니다.


다음편에서는 html, 템플릿에 대해 알아보겠습니다.




장고의 Views에 대해 자세히 알고싶으시면 장고 공식문서를 읽어보세요^^


바로가기 => 장고 공식 문서 Views






**출처 및 참고**

[블로그] 초보몽키님의 개발공부로그

[Wikidocs] 핀코인님의 Django 자습

[프로그래머스] 정두식님의 장고를활용한 웹사이트만들기 동영상강의

[오픈소스튜로리얼] Quasar Beyond님의 Django : Python WebFrameWork 동영상강의

[장고걸스공식] 이수진님 외. 장고걸스 튜토리얼 한국어번역

[장고걸스공식] 이수진님 외. 장고걸스 튜토리얼 심화 한국어번역

장고 공식 Document Tutorial

Comments