【问题标题】:How to return a random number asynchronously using AJAX and Django如何使用 AJAX 和 Django 异步返回随机数
【发布时间】:2022-09-28 13:06:58
【问题描述】:

作为一个初学者,我很抱歉没有如你所愿,但希望你能理解我的问题。

我想要实现的只是每 1.5 秒返回一个随机值,而无需手动刷新浏览器。到目前为止,我的代码看起来像这样并且它有效,但我确信我的方法有点奇怪。

是否有可能只有一个功能实际上与这两个功能相同或任何更清洁的方式来实现这一目标?

视图.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),
]

    标签: django ajax django-views django-templates


    【解决方案1】:

    ==== 在 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),
     
    ]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-06-10
      • 1970-01-01
      • 1970-01-01
      • 2014-05-25
      • 2011-06-01
      • 2013-05-23
      • 1970-01-01
      • 2023-03-25
      相关资源
      最近更新 更多