Masalah:
Apabila melaksanakan kelas middleware Django yang bertujuan untuk melaksanakan hanya sekali pada permulaan untuk memulakan kod tambahan, mesej "Hello world" dicetak dua kali.
Penyelesaian:
Untuk Django >= 1.7:
Gunakan kaedah ready() dalam kelas AppConfig:
<code class="python"># myapp/apps.py class MyAppConfig(AppConfig): name = 'myapp' verbose_name = "My Application" def ready(self): # startup code goes here</code>
Untuk Django < 1.7:
Letakkan kod permulaan dalam fail __init__.py mana-mana apl yang dipasang:
<code class="python"># myapp/__init__.py def startup(): # startup code goes here startup()
Penjelasan:
Menggunakan kaedah ready() dalam Django >= 1.7 memastikan bahawa kod dilaksanakan selepas Django selesai memuatkan semua model dan migrasi. Untuk Django < 1.7, meletakkan kod dalam __init__.py memastikan ia berjalan semasa import, yang berlaku sekali setiap proses.
Atas ialah kandungan terperinci Bagaimana untuk Melaksanakan Kod Sekali sahaja di Django Startup?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!