Как вывести результаты из API на основе поиска пользователя с помощью Django

Как вы можете видеть на рисунке ниже, я пытаюсь заставить пользователя искать заданную страну, дату начала/окончания и получить результат "Подтвержденные случаи" и "Дата" обратно из API, но я не уверен, как это сделать.

Image

Я пытался использовать этот API, чтобы заполнить выпадающее меню стран -->

https://api.covid19api.com/summary

но это другой API, который я должен использовать, но при изменении параметров для страны и даты -->

https://api.covid19api.com/country/afghanistan/status/confirmed?from=2020-09-06T00:00:00Z&to=2020-09-11T00:00:00Z

Вот фрагменты моего кода:

views.py

def home(request):
   # second_response = requests.get('https://api.covid19api.com/country/afghanistan/status/confirmed?from=2020-09-06T00:00:00Z&to=2020-09-11T00:00:00Z').json()
    second_response = requests.get('https://api.covid19api.com/summary').json()

    my_list = []
    for i in range(0, len(second_response['Countries'])):
        my_list.append(second_response['Countries'][i]['Country'])

    if request.method=='POST':
        selected_country = request.POST['selected_country']
        print('here', selected_country)
    
    return render(request, 'home.html', {'my_list': my_list})

home.html

<div class="container justify-content-center">
  <form action="{% url 'home' %}" method="post">
    {% csrf_token %}
    <label for="selected_country" style="margin-right: 5px;"> Select a Country, Start & End Dates : </label>
    <select name="selected_country" >
      {% for object in my_list %}
      <option value="">{{object}}</option>
      {% endfor %}
    </select>
    <label for="startdate"></label>
    <input type="date" id="startdate">

    <label for="enddate"></label>
    <input type="date" id="enddate">

    <input type="submit" value="Search" />
  </form>
</div>

PLUS: когда я нажимаю на "поиск", я должен получить значение выбранной_страны, потому что я пытался распечатать его, но оно не отображается по какой-то причине, поэтому метод является post, но по какой-то причине я не могу получить обратно выбранную_страну

Любая помощь приветствуется

JAVASCRIPT

если у вас есть хоть какое-то представление о javascript, я рекомендую вам делать это на javascript, потому что это сделает его лучше и проще

иначе :

view.py


def handler(request):

    if request.method=='POST':
        selected_country = request.POST['selected_country']
        startDate= request.POST['startdate']
        endDate= request.POST['enddate']
        
    request_handler = requests.get(f"https://api.covid19api.com/country/{selected_country}/status/confirmed?from={startDate}T00:00:00Z&to={endDate}T00:00:00Z")
    if request_handler.status_code=200:
        #To prevent errors
        request_json=request_handler.json()
    else:
        pass # do something



    
    return render(request, 'result.html', {"json":request_json})
    #you should handle the data at the front end using jinja blocks

примечание: я мало знаю о Django, поэтому код может быть нерабочим

Вернуться на верх