장고(Django) 개발: MVC 패턴, 뷰(View)

히즈웨드 |

    뷰는 MVC 패턴에서 Controller에 속하며, 데이터를 입력받거나 표시하는 컴포넌트이다. 뷰의 함수가 특정 URL과 매치되어 템플릿을 제어한다.

    • 장고의 Model = Model
    • 장고의 View = Controller
    • 장고의 Template = View


    장고(Django) 개발: 프로젝트 시작과 구성 포스팅의 뷰 영역만을 자세히 정리한 것이다.



    작년에 장고(Django) 프레임워크로 프로젝트를 진행하면서 공부했던 개발 지식을 블로그에 다시 정리하려고 합니다. 개인 위키에 정리했던 것을 옮기는 수준이라, 친절한 설명은 기대하기 어렵고, 프로그래밍 언어와 파이썬 지식이 어느정도 있어야 이해할 수 있을 것입니다.


    아래 내용들은 Django 1.6~1.7 버전을 기준으로하고, "쉽고 빠른 웹개발 Django"란 책에서 1/3, 공식 위키에서 1/3, 그리고 나머지는 구글링을 바탕으로 정리한 지식입니다. 말투가 존대와 반말이 섞여있어도 이해바랍니다 :)



    1 템플릿 제어 방법




    1 템플릿 제어 방법

    뷰에서 템플릿을 컨트롤하는 방법은 크게 3가지가 있는데, render나 render_to_response를 많이 사용한다.

    풀어 쓰기 방법

    def main_page(request):
        template_object = get_template('탬플릿명')
        context_object = Context({
            'key1':'value1',
            'key2':'value2',
        })
        output_html = template_object.render(context_object)
        HttpResponse(output_html)

    render_to_response로 간소화

    def main_page(request):
        return render_to_response(
            'main_page.html',
            {
                'user': request.user,
            },
        )

    render로 간소화

    def main_page(request):
        return render(
            request,
            'main_page.html',
            {
                'user': request.user,
            },
        )