取得單執行程式碼在Django 啟動時執行
開發Django 應用程式時,可能存在需要執行特定程式碼的情況僅在啟動期間一次,通常用於初始化目的。但是,使用 Middleware 類別來實現此目標可能會導致多次執行,因為 Django 中間件系統會在每次請求時呼叫每個中間件的 __init__() 方法。
Django 的解決方案Django 的解決方案1.7
要解決1.7 之前的Django 版本中的此問題,一種有效的方法是將啟動程式碼放入其中一個INSTALLED_APPS 的__init__.py 檔案中。例如,在myapp 應用程式中,您可以在myapp/__init__.py 中包含以下程式碼:<code class="python">def startup(): pass # Place your startup code here startup()</code>此方法可確保在Django 啟動期間執行startup() 函數,並且在Django 啟動時不會再次呼叫後續請求,提供所需的一次性執行。
針對 Django 1.7 及更高版本的改進解決方案
Django 版本 1.7 為這一需求引入了更優雅的解決方案。透過在應用程式的apps.py 檔案中使用ready() 方法實作AppConfig 類,您可以指定當應用程式標記為就緒時要執行的程式碼。以下是使用 myapp 應用程式的範例:<code class="python"># myapp/apps.py from django.apps import AppConfig class MyAppConfig(AppConfig): name = 'myapp' verbose_name = "My Application" def ready(self): pass # Place your startup code here</code>這種方法可讓您更自然地定義和執行啟動程式碼,是 Django 1.7 及更高版本的建議解決方案。
以上是如何在 Django 啟動時執行一次程式碼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!