取得單執行程式碼在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 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 啟動時執行一次程式碼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!