Displaying Dynamic Data with a Django View Function

Django is a powerful Python web framework and it provides a straightforward way to display dynamic data in web applications. It has a template system for displaying content on the web. Templates can be combined with view functions to display data dynamically. This article will describe how to use a Django view function to retrieve and display dynamic data.

Step 1: Define a View Function

Initially, we need to create a view function as follows, that can handle the request and return the response containing the dynamic data. In Django applications, view functions are conventionally defined in the views.py file.

from django.shortcuts import render
from .models import SampleModel

def dynamic_data_view(request):
    # Retrieve dynamic data from the model
    dynamic_data = SampleModel.objects.all()

    # Define a context dictionary variable and Pass the dynamic data to the template
    context = {'dynamic_data': dynamic_data}

    # Render the template with the dynamic data
    return render(request, 'sample_template.html', context)

Here, the render function and SampleModel model are imported. The dynamic_data variable holds the data retrieved from the model and passed to the template ‘sample_template.html’ via the context dictionary in order to be rendered.

Step 2: Create a Template

Now, we need to create the template that will render the dynamic data received from the view function. In the Django application’s templates directory, we can create the file called sample_template.html with the following content:

<!DOCTYPE html>
<html>
<head>
    <title>Dynamic Data Display</title>
</head>
<body>
    <h1>Dynamic Data:</h1>
    <ul>
        {% for item in dynamic_data %}
            <li>{{ item }}</li>
        {% endfor %}
    </ul>
</body>
</html>

The template contains HTML markup for structuring the webpage. The {% for %} loop iterates over the dynamic_data variable and displays each item in an unordered list.

Step 3: Configure routes

In order to access the view function, we need to configure the appropriate route in the Django application’s urls.py.

from django.urls import path
from .views import dynamic_data_view

urlpatterns = [
    ...
    path('dynamic-data/', dynamic_data_view, name='dynamic_data'),
]

Here, we have added the dynamic-data/ path and associated it with the view function we created.

Step 4: Test the Application

After setting up the view function, template and the URL configuration, now we are ready to test the application and get our dynamic data going. After running the development server with the following command:

python manage.py runserver

Open a browser and after navigating to the URL we’ve configured for the dynamic data view (e.g., http://localhost:8000/dynamic-data/). We will be able to see the dynamic data displayed on the webpage, as it is retrieved from the model. The data will be listed in the unordered list format that has been defined in the template.

Conclusion

With this we have discussed how to use a Django view function to retrieve and display dynamic data.

References

  1. https://studygyaan.com/django/how-to-render-dynamic-data-in-django-template