我想在啓動Django服務器時執行一些代碼,但我只希望它只運行一次。目前,當我啓動服務器時,它會執行兩次。 Documentation說,這可能會發生,:如何避免在Django中運行兩次的AppConfig.ready()方法
你應該把一個標誌,對你的AppConfig類,以防止應執行只有一個時間重新運行 代碼。
任何想法如何實現這一目標?下面的打印語句仍然執行兩次。
from django.apps import AppConfig
import app.mqtt
from apscheduler.schedulers.background import BackgroundScheduler
class MyAppConfig(AppConfig):
name = 'app'
verbose_name = "HomeIoT"
run_already = False
def ready(self):
if MyAppConfig.run_already: return
MyAppConfig.run_already = True
print("Hello")
那是縮進是否正確?'ready'應該在MyAppConfig類中。 –
你說得對。這只是複製/粘貼錯誤。我修好了它。 – Koooop
如果使用'--noreload'運行,是否發生雙面打印? – AKX