javascript - 重新加载表格而不刷新 Django 中的页面

标签 javascript jquery ajax django django-views

有一个小表,需要每 10 秒更新一次新数据。整个网站都在 Django 中运行。 JSON 将数据解析为 1 个表,并在数据库中每 10 秒重写一次数据。该网站正在显示数据库中的数据。我需要的程序是每 10 秒用新数据刷新一次前端表——我想这就是 AJAX,你能帮我写代码吗?它不会将数据附加到表中,只是不断刷新它。

示例 - 数据库中的表有固定的 10 行数据,正在通过 JSON 刷新。前端将始终显示 10 行,因此每隔 10 秒,表格(前端)将始终显示 10 行新数据。

Django 版本 1.11

这是python文件

View .py

def prices(request):
    prices = Price.objects.all().order_by('id')
    return render(request, 'prices.html', {'prices':prices})

价格.html

<div class="col-md-8">
     <table class="table table-striped">
         <thead>
             <tr>
                 <th>TYPE</th>
                 <th>NAME</th>
                 <th>PRODUCT</th>
                 <th>VALUE</th>                 
             </tr>
         </thead>
         <tbody>
         {% for price in prices %}
             <tr>
                 <td>{{ price.type }}</td>
                 <td>{{ price.name }}</td>
                 <td>{{ price.product }}</td>
                 <td>{{ price.value }}</td>
             </tr>
         {% endfor %}
         </tbody>
     </table>
 </div>

网址.py

urlpatterns = [
     url(r'^prices/', product_views.prices, name='prices'),
     url(r'^admin/', admin.site.urls),
]

最佳答案

创建一个返回指定表中所有行的 Django View 。现在创建一个 ajax 函数,每 10 秒轮询一次 django View (通过 url)。

使用 jquery,你必须像这样包含 jquery cdn:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.0/jquery.min.js">

现在 ajax function (jquery ajax)

var updateTable = $.ajax({

                method: "GET",
                url: "prices/",


                success: function(data, textStatus, request) {

                console.log(data) 
                //update your DOM with new data recieved in **data**

            }
        });

setInterval(updateTable,10000);

每 10 秒执行一次此 ajax 函数。请记住, View 将返回带有表格的原始 html。可以在您编写的 ajax 函数的成功回调函数中访问此数据。现在你必须用你在 data 变量中得到的新表更新你的 DOM。尝试从成功回调中运行 console.log(data) 以查看服务器的响应。

关于javascript - 重新加载表格而不刷新 Django 中的页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43574031/

相关文章:

javascript - 多个ajax请求的速率限制

javascript - lodash _.filter 用于可选地基于数组的条件?

c# - 从 JavaScript 数组创建接口(interface)类型列表

javascript - 如何在 React-Native (JavaScript) 中显示更多/更少的文本

jquery 悬停问题

javascript - Laravel 再次访问网站时自动登录

javascript - 在 Photoshop 中加载图像文件并将其放置在特定位置

javascript - 使用 jquery 从窗口对象中删除事件监听器

javascript - 更新数据表中的特定按钮 HTML

javascript - .json 文件的 HTML5 应用程序缓存?