Как асинхронно вернуть случайное число с помощью 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),
]