我呼叫了第一個“a1”函式,它開始在回圈中運行,當我呼叫第二個“a2”函式時,第一個“a1”函式應該停止,第二個函式必須開始運行,但是這兩個函式正在運行在平行下。當呼叫第二個函式時,我需要停止第一個函式。
def a1(request):
if request.method == "POST":
add = request.POST['addition']
while True:
add = add 1
print(add)
time.sleep(2)
return render(request, blog/finished.html)
def a2(request):
if request.method == "POST":
check = request.POST['checking']
while True:
print(check)
print("second function: ",check)
time.sleep(2)
return render(request, blog/finished.html)
uj5u.com熱心網友回復:
這兩個請求是獨立運行的,因此它們不能直接相互通信。您需要有一些方法來跟蹤請求 a1 的狀態。在 Django 中,您可以使用可以記錄 a1 狀態(例如正在運行)的資料庫表來執行此操作。然后 a2 可以將此狀態更新為“已停止”,a1 必須輪詢該狀態以確定它是否應該停止運行。
我忽略了您為什么要這樣做,因為故意將請求放入帶有睡眠的回圈中會占用網路服務器上的資源并可能導致性能問題。
uj5u.com熱心網友回復:
您應該查看 Django 頻道。
這是一個很好的教程和檔案:https : //channels.readthedocs.io/en/stable/
通過這種方式,多個用戶/頁面可以與同一個行程通信并從該行程接收資料,而不會在網路服務器上帶來很多痛苦。
這使用了 Redis,所以要為此做好準備
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/347623.html
標籤:Python 姜戈 django-models Django 休息框架 django-views
上一篇:如何將兩個模型應用于一個視圖?
