我在Django中构建了一个应用程序,我有一个从指纹机获取考勤日志的功能,基本上是这样的:
import requests
from xml.etree import ElementTree
def main(request):
Key="xxxxxx"
url="http://192.168.2.188:80"
soapreq="<GetAttLog><ArgComKey xsi:type=\"xsd:integer\">"+Key+"</ArgComKey><Arg><PIN xsi:type=\"xsd:integer\">All</PIN></Arg></GetAttLog>"
http_headers = {
"Accept": "application/soap+xml,multipart/related,text/*",
"Cache-Control": "no-cache",
"Pragma": "no-cache",
"Content-Type": "text/xml; charset=utf-8"
}
response = requests.post(url+"/iWsService",data=soapreq,headers=http_headers)
root = ElementTree.fromstring(response.content)
现在,对于100个++指纹机器将重复该过程,我需要在页面上定期和顺序显示某种进度状态以及错误消息(如果有的话,如连接无法建立等)每个事件。我的意思是:
...
&#34;机器1:下载完成。&#34;
&#34;从机器2下载数据..请稍候&#34;
&#34;机器2:下载完成。&#34;
...
感谢。
答案 0 :(得分:0)
我不确定你面临的主要障碍是什么。你能尝试以更精确的方式构建问题吗?
据我所知,您希望页面根据服务器上发生的事情动态变化。我认为django可能不是最好的工具,因为它的基本用途是一次性计算完整视图然后显示它。但是,有一些事情可以做。
最简单(但不是最好的服务器负载)是使用来自网页的Ajax请求。
这不是最好的架构,因为您可能会经常或经常不经常从服务器重新加载数据。我建议看一下websockets,它允许你保持客户端 - 服务器连接打开并在需要时使用它,但是在django中没有它们的原生支持。