Как асинхронно вернуть случайное число с помощью AJAX и Django

Как новичок, я прошу прощения за то, что я не так конкретен, как вам хотелось бы, но, надеюсь, вы поймете мою проблему.

Что я пытаюсь достичь - это просто возвращать случайное значение каждые 1,5 секунды без ручного обновления браузера. Пока что мой код выглядит так, и он работает, но я убежден, что мой подход несколько странный и около того.

Есть ли возможность иметь только одну функцию, которая делает то же самое, что и эти две, или какой-либо более чистый способ достичь этого?

views.py:

def generate_random(request):
    return render(request, "form.html")

def generate_number(request):
    return HttpResponse(randint(0, 30))

мой form.html имеет вид:

<head>  
    <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>    
</head>   
<body onload="getRandomInt();">

    <h2 id="result"></h2>

    <script>
        function getRandomInt() {
            setTimeout(function () {

              $.get("url", function(data, status){
                    $('#result').html(data);
                });

                getRandomInt();
            }, 1500)
            return false;
        }
    </script>  
</body>

и urls.py:

urlpatterns = [
    path('',generate_random),
    path('url',generate_number),
]

==== в html ==========

  <head>  
      <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>    
  </head>   
  <body onload="getRandomInt();">
  
      <h2 id="result">{{number}}</h2>
  
      <script>
          function getRandomInt() {
              setTimeout(function () {
  
                $.get("url", function(data, status){
                      $('#result').html(data);
                  });
                  getRandomInt();
              }, 1500)
              return false;
          }
      </script>  
  </body>

===== view.py ========

def generate_random(request):
    context = {'number':randint(0, 30)}
    return render(request, "index.html",context)

==== urls.py =======

urlpatterns = [
 
    path('url',generate_random),
 
]
Вернуться на верх