Как вывести два представления в один шаблон с помощью Django
справедливо отметить, что я только начинаю изучать Django, и мне бы очень пригодилась помощь.
Чтобы нарисовать ясную картину, есть две конечные точки API, которые я должен использовать, и каждая из них должна быть отображена в одном шаблоне (HTML-файле), что означает, что они должны быть в одном URL-пути, но я пока не могу понять это, я пробовал и с функцией, и с представлением на основе класса, но я ни к чему не пришел.
views.py: `
class HomePage(TemplateView):
template_name = 'home.html'
def home(self, request):
response = requests.get('https://api.covid19api.com/world/total').json()
print('res',response.data)
return render(request, 'home.html', {'response': response})
def other(self, request):
response= requests.get('https://api.covid19api.com/country/south-africa/status/confirmed?from=2020-09-06T00:00:00Z&to=2020-09-11T00:00:00Z').json()
return render(request, 'home.html', {'response': response})
`
urls.py:
`
urlpatterns = [
path('home', HomePage.as_view(), name='home')
]
`
home.html: `
{% extends '_base.html' %}
{% block page_title %} Covid19 Statistics {% endblock %}
{% block content %}
<br>
<br>
<h3 class="text-center">World Total Statistics </h3>
<br>
<!-- <div class="container">
<div class="card-group">
<div class=" col-md-4">
<div class="card text-white bg-secondary mb-3" style="max-width: 20rem;">
<div class="card-body">
<h5 class="card-title text-center">Total Confirmed: {{response.TotalConfirmed}}</h5>
</div>
</div>
</div>
<div class=" col-md-4">
<div class="card text-white bg-secondary mb-3" style="max-width: 20rem;">
<div class="card-body">
<h5 class="card-title text-center">Total Deaths: {{response.TotalDeaths}}</h5>
</div>
</div>
</div>
<div class=" col-md-4">
<div class="card text-white bg-secondary mb-3" style="max-width: 20rem;">
<div class="card-body">
<h5 class="card-title text-center">Total Recovered: {{response.TotalRecovered}}</h5>
</div>
</div>
</div>
</div>
</div>
-->
<br>
<br>
<h4 class="text-center">Get Statistics For a Specific Country </h4>
{% for object in response %}
<div class="card text-light bg-dark" style="width: 35rem;">
<h3 class="card-header"></h3>
<div class="card-body">
<p class="card-text">{{object.Country}} </p>
<p class="card-text">{{object.Date}} </p>
</div>
</div>
{% endfor %}
{% endblock%}
`
Любая помощь будет принята с благодарностью, заранее спасибо
Вы можете вызвать два api в одном представлении следующим образом:
def home(self, request):
first_response = requests.get('https://api.covid19api.com/world/total').json()
second_response = requests.get('https://api.covid19api.com/country/south-africa/status/confirmed?from=2020-09-06T00:00:00Z&to=2020-09-11T00:00:00Z').json()
return render(request, 'home.html', {'first_response ': first_response ,'second_response':second_response })