使用mid存储的数据异步更新页面

2024-05-19 11:31:43 发布

您现在位置:Python中文网/ 问答频道 /正文

我有中间件,它把所有的http请求存储到数据库中。在

我还有一个视图,它从数据库中获取数据并将这些数据放入上下文中。在

在视图.py在

def requests(request):
    http_requests = WebRequest.objects.all()
    context = {
        "http_requests": http_requests
    }
    return render(request, "requests.html", context)

当新请求进来时,如何异步更新此页上的数据(因此,新请求应该异步出现在该页上)?我可以只使用Django特性来实现这种行为还是需要使用一些javascript库?在


Tags: 中间件数据py视图数据库httpreturnobjects
1条回答
网友
1楼 · 发布于 2024-05-19 11:31:43

这取决于你想花多少时间在这个项目上。正如Lorenzo所说,创建一个API并让javascript框架(例如emberjs或angularjs)处理异步性可能是有意义的。我不认为你能用纯django来处理这件事。。。 如果您没有时间,正在进行一些“黑客攻击”,您可以通过轮询url并用响应替换整个文档来替换页面内容:

 $.ajax({
        type: "GET",
        url: "<url_to_your_requests_view>",
        success: function(response){
            $('body').html(response);
        }
    });

这是不干净的,但应该作为一个快速肮脏的伎俩。。。在

编辑:如果只想交换站点的某些部分,可以将其分解为只向页面添加元素:

^{pr2}$

或使用JSON

 $.ajax({
        type: "GET",
        url: "<url_to_your_requests_api_endpoint>",
        success: function(response){
            var requestRows = response.requestItems
            var $requestsHolder = $('#request-holder');
            $requestHolder.empty();
            requestRows.forEach(function(row){
                requestsHolder.append('<div class="request-row">' + <visualize your data somehow> + '</div>'); //e.g. row.timestamp if you have that in your json
            });

        }
    });

相关问题 更多 >

    热门问题