使用AppConfig 在Django 啟動時執行一次程式碼
建立Django 應用程式時,可能存在您只想執行特定程式碼一次的情況在啟動時。可以利用 Django 中間件類別來實現此目的,但在早期版本中,可能會導致程式碼執行多次。
Django 版本的解決方案
解決方案1.7
<code class="python">def startup(): pass # load a big thing startup()</code>
對於1.7 之前的Django 版本,建議將啟動代碼放在INSTALLED_APPS 的__init__.py 檔案之一中。以下是一個範例:
Django 1.7 以上版本的解決方案
<code class="python"># myapp/apps.py from django.apps import AppConfig class MyAppConfig(AppConfig): name = 'myapp' verbose_name = "My Application" def ready(self): pass # startup code here</code>
Django 1.7 引入了AppConfig.ready() 方法,該方法允許您指定啟動代碼。使用此方法可確保程式碼在應用程式載入期間僅執行一次。
附加說明
使用 ./manage.py runserver 時,啟動程式碼可能會因為內部伺服器操作而執行兩次。但是,在典型的部署場景或自動重新載入中,程式碼僅執行一次。以上是如何使用 AppConfig 在 Django 啟動時執行一次程式碼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!