鍍金池/ 問(wèn)答/Python  HTML/ 如何使用django執(zhí)行一個(gè)要幾十秒才能執(zhí)行完成的腳本,并能邊執(zhí)行邊在頁(yè)面上輸出

如何使用django執(zhí)行一個(gè)要幾十秒才能執(zhí)行完成的腳本,并能邊執(zhí)行邊在頁(yè)面上輸出執(zhí)行結(jié)果?

我在頁(yè)面上點(diǎn)擊個(gè)按鈕然后執(zhí)行一個(gè)python腳本,目前的情況是只有等幾十秒這個(gè)腳本執(zhí)行完成后,才會(huì)在頁(yè)面上輸出全部的執(zhí)行結(jié)果,而不是邊執(zhí)行邊輸出。(我在linux里面執(zhí)行的時(shí)候是執(zhí)行的同時(shí)有結(jié)果輸出的)

這個(gè)腳本大概要幾十秒才能執(zhí)行完成,請(qǐng)問(wèn)下各位大神我應(yīng)該如何做才能邊執(zhí)行邊輸出結(jié)果在頁(yè)面展示呢?

目前就是在views.py里面寫(xiě)了個(gè)函數(shù),請(qǐng)求后就會(huì)跑這個(gè)腳本(30秒左右),跑完后才輸出結(jié)果,體驗(yàn)不好。。。

def bakfile(request):
    output = os.popen('/var/www/cp/bakfile.py')
    return HttpResponse(output.read())
回答
編輯回答
眼雜

使用websocket,參考https://www.cnblogs.com/huguo...
或者先把運(yùn)行過(guò)程寫(xiě)到日志里面,再使用ajax輪詢(xún)的方式讀取顯示到前端

2017年6月24日 19:21