Fetch and Display API JSON Response Data in Django Templates

In the era of data-driven web applications, fetching data from external APIs and displaying it in Django templates has become a common requirement. Django’s flexibility and powerful toolset make this process straightforward. In this blog, we’ll explore how to get data from an API and seamlessly integrate it into your Django templates.

1. Introduction to API Integration in Django

APIs (Application Programming Interfaces) enable communication between different software systems. Integrating APIs in Django allows you to leverage external data and services to enhance your application’s functionality.

2. Choosing an API

Select an API that provides the data you want to display. For example, let’s consider a hypothetical weather API that offers weather forecasts for different cities.

3. Fetching API Data in Django

  1. Install Requests Library: If not already installed, use the requests library to make HTTP requests to the API:
   pip install requests
  1. Fetch Data in Views: In your Django view, fetch data from the API using the requests library:
   import requests

   def get_weather_data(city):
       api_url = f"https://api.example.com/weather?city={city}"
       response = requests.get(api_url)
       data = response.json()
       return data

4. Passing API Data to Templates

  1. Pass Data in Context: In your view, pass the fetched data as a context variable to your template:
   def weather_view(request, city):
       weather_data = get_weather_data(city)
       context = {'weather_data': weather_data}
       return render(request, 'weather_template.html', context)

5. Displaying API JSON Data in Templates

  1. Access Data in Template: In your template, access the context variable and display the API data:
   <h2>Weather Forecast for {{ weather_data.city }}</h2>
   <p>Temperature: {{ weather_data.temperature }}°C</p>
   <p>Conditions: {{ weather_data.conditions }}</p>

6. Enhancing the User Experience

  • Error Handling: Implement error handling to manage cases where the API request fails or returns unexpected data.
  • Caching: To avoid unnecessary API requests, consider implementing caching mechanisms.
  • Styling: Apply CSS and formatting to integrate the displayed data seamlessly with your template design.


Integrating API data into Django templates is a powerful way to enrich your application with real-time information. By following the steps outlined in this guide, you can get and display external data in a user-friendly. Happy coding!

Blogs You Might Like to Read!