如何实时更新Django模板?

2024-06-26 02:46:53 发布

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

在这个模板中,我从一个API检索比特币的价格。在实际的时刻,价格只会在页面刷新时更新,而我希望它被更新而不刷新整个页面,动态。你知道吗

这是我的观点:

def home(request):

    symbol = "BTCUSDT"
    tst = client.get_ticker(symbol=symbol)

    test = tst['lastPrice']

    context={"test":test}

    return render(request,
                  "main/home.html", context
                  )

模板的行如下所示:

<h3> var: {{test}} </h3> 

这里有两个问题:

1)据我所知,Django本身不是异步的,因此我需要找到一种方法来实时更新模板的这一部分,而不必刷新整个页面。你知道吗

2)在实际情况下,在打开/刷新页面时请求API,但要流式传输价格,它应始终运行。我尝试了这个(糟糕的)解决方案:在视图中添加一个while true,但它当然破坏了我的代码,只执行while语句的部分。你知道吗

感谢您的建议:)


Tags: test模板apihomerequestcontext动态价格
1条回答
网友
1楼 · 发布于 2024-06-26 02:46:53

您应该分离前端和后端,以便动态更新DOM内容,而不需要每次都呈现整个DOM。你知道吗

前端的职责是在用户执行需要刷新或获取更新数据的操作时请求并获取最新的值。请求需要通过AJAX等异步方式进行。较新的JS框架(例如React、Vue)使用虚拟DOM,它们使用中间虚拟DOM来推送更新,并最终一次性更新真正的DOM;这使得它们的性能非常好。你知道吗

(Django)后端应该公开一个API,该API将从后端接收特定资源的(AJAX)请求,并为它们提供服务。你知道吗

Django的一个不错的框架是DRF(Django REST framework),它公开了REST端点,您可以通过AJAX从前端调用REST端点并获得响应,这样前端就可以进行必要的更新。你知道吗

这是一个失败的高级视图,编写它是为了给您一个可以通过深入挖掘来实现的想法。

相关问题 更多 >