【发布时间】:2019-11-10 08:05:21
【问题描述】:
在这个模板中,我从 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 语句的一部分。
感谢任何建议:)
【问题讨论】:
-
在这种情况下,您应该编写一些 JavaScript 来调用 API 并获取新价格。例如角度。 Django 是一个后端,而不是一个前端。
-
要么你想要通过 jQuery 进行 AJAX,工作在后端完成,要么尝试单独通过 JS 更新值。这是相当广泛的
-
是的,但本质上,问题是我不明白将不断查询 api 的代码放在哪里。我的意思是,如果我把它放到视图中,它将不起作用
-
为什么它在视图中不起作用?它现在工作正常。关键是,您的 Ajax 会重复调用视图并根据需要更新前端。
标签: python django django-templates django-views