Django & AJAX для отображения объектов БД после ввода данных пользователем

Я довольно новичок в мире веб-разработки, до сих пор использовал Django.

Я пытался понять, как вернуть данные на страницу после нажатия на кнопку отправки, и вижу, что для этого мне нужно использовать AJAX.

Я создал очень простое приложение, чтобы понять основы AJAX. Однако, погуглив, я не смог найти базовой прямой реализации, так что я вроде как потерялся...

Что я пытаюсь достичь:

У меня есть модель под названием Страна:

class Country(models.Model):
    name = models.CharField(primary_key=True, max_length=35)
    continent = models.CharField(max_length=10)
    capital = models.CharField(max_length=35)
    currency = models.CharField(max_length=10)

И суперпростая главная страница, которая просит пользователя вставить название какой-нибудь страны.

Идея состоит в том, чтобы вывести на страницу всю информацию из БД. Таким образом, это будет выглядеть следующим образом: главный снимок страницы

Главная страница HTML body:

<body>
    <h2><em>Please type a country name:</em></h2><br><br>
    <div class="container">
        <form id="get_info" method="post">
            {{ form }}
            {% csrf_token %}
            <input id="submit_button" type="submit" name="submit" value="Get info">
        </form>
    </div>
</body>

views.py:

from django.shortcuts import render
from country_trivia import forms


def main_page(request):
    get_info_form = forms.GetInfo()
    return render(request, 'country_trivia/index.html', {'form': get_info_form})

forms.py:

from django import forms


class GetInfo(forms.Form):
    country_name = forms.CharField(label="")

Я видел некоторые примеры с использованием форм, но я даже не уверен, нужно ли это, так как я видел некоторые другие примеры, которые рассчитывают на 'onclick' даже слушателей, затем "захватывают" текст в поле поиска и передают его через AJAX...

Как я должен построить свой объект AJAX для этой простой цели, и как я должен его интегрировать?

Нужно ли мне вообще использовать формы? Я ничего не публикую в БД, просто делаю запрос и распечатываю данные...

Спасибо!!!

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