Mendapatkan Kod Pelaksanaan Tunggal untuk Dijalankan di Django Startup
Apabila membangunkan aplikasi Django, mungkin terdapat keadaan di mana anda perlu melaksanakan kod tertentu hanya sekali semasa permulaan, biasanya untuk tujuan permulaan. Walau bagaimanapun, menggunakan kelas Middleware untuk matlamat ini boleh menghasilkan pelbagai pelaksanaan, kerana sistem middleware Django memanggil kaedah __init__() bagi setiap middleware pada setiap permintaan.
Penyelesaian Django untuk Django < 1.7
Untuk menangani isu ini dalam versi Django sebelum 1.7, satu pendekatan yang berkesan ialah meletakkan kod permulaan anda dalam fail __init__.py salah satu INSTALLED_APPS anda. Sebagai contoh, dalam aplikasi myapp, anda boleh memasukkan kod berikut dalam myapp/__init__.py:
<code class="python">def startup(): pass # Place your startup code here startup()</code>
Pendekatan ini memastikan fungsi startup() dilaksanakan semasa permulaan Django dan tidak digunakan semula apabila permintaan seterusnya, memberikan pelaksanaan sekali sahaja yang diingini.
Penyelesaian Diperbaiki untuk Django 1.7 dan Kemudian
Django versi 1.7 memperkenalkan penyelesaian yang lebih elegan untuk keperluan ini. Dengan melaksanakan kelas AppConfig dengan kaedah ready() dalam fail apps.py aplikasi anda, anda boleh menentukan kod untuk dilaksanakan apabila aplikasi ditandakan sebagai sedia. Berikut ialah contoh menggunakan aplikasi 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>
Pendekatan ini membolehkan anda mentakrif dan melaksanakan kod permulaan anda secara lebih semula jadi dan merupakan penyelesaian yang disyorkan untuk Django 1.7 dan lebih baru.
Atas ialah kandungan terperinci Bagaimana untuk Melaksanakan Kod Sekali di Django Startup?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!