[파이썬][Django] 컨텍스트 데이터 전달 함수 사용 방법과 예제

Django에서 컨텍스트 데이터를 전달하는 함수를 사용하여 템플릿에 데이터를 동적으로 전달하는 방법과 예제를 제공하겠습니다. 컨텍스트 데이터는 템플릿에서 사용할 변수 및 정보를 포함하는 데 사용됩니다.

  1. 템플릿 작성

    먼저, Django 템플릿을 작성합니다. 이 템플릿에는 컨텍스트 데이터를 사용할 변수들이 포함될 것입니다. 예를 들어:

<pre>
<code>

<!-- myapp/templates/my_template.html -->
    
    <!DOCTYPE html>
    <html>
    <head>
        <title>{{ page_title }}</title>
    </head>
    <body>
        <h1>Welcome, {{ user_name }}!</h1>
        <p>{{ message }}</p>
    </body>
    </html>

</code>
</pre>
  1. 컨텍스트 데이터 전달 함수 작성

    컨텍스트 데이터를 전달하는 함수를 작성합니다. 이 함수는 컨텍스트 딕셔너리를 반환해야 합니다. 예를 들어:

# myapp/views.py
    
    def get_context_data():
        context = {
            'page_title': 'My Page',
            'user_name': 'John',
            'message': 'This is a sample message.',
        }
        return context
  1. 컨텍스트 데이터 전달 함수 사용

    템플릿을 렌더링할 뷰 함수에서 컨텍스트 데이터 전달 함수를 호출하여 데이터를 가져옵니다.

# myapp/views.py
    
    from django.shortcuts import render
    
    def render_my_template(request):
        context = get_context_data()
        return render(request, 'my_template.html', context)
  1. 템플릿 렌더링 함수 호출

    뷰 함수를 호출하면 컨텍스트 데이터가 템플릿에 전달되어 동적인 웹 페이지가 생성됩니다.

from myapp.views import render_my_template
    
    def my_view(request):
        return render_my_template(request)

이제 my_template.html 템플릿은 page_title, user_name, message와 같은 변수를 사용하여 동적으로 생성된 웹 페이지를 표시합니다.

컨텍스트 데이터 전달 함수를 사용하면 템플릿에 동적 데이터를 전달하고, 템플릿과 뷰 함수를 효율적으로 분리할 수 있습니다. 이것은 Django 웹 애플리케이션을 개발하는 데 매우 유용합니다.