Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Melaksanakan Kod Sekali pada Django Startup dengan AppConfig?

Bagaimana untuk Melaksanakan Kod Sekali pada Django Startup dengan AppConfig?

Linda Hamilton
Linda Hamiltonasal
2024-11-01 12:49:02809semak imbas

How to Execute Code Once on Django Startup with AppConfig?

Laksanakan Kod Sekali pada Django Startup dengan AppConfig

Apabila membina aplikasi Django, mungkin terdapat keadaan di mana anda mahu menjalankan kod tertentu sekali sahaja pada permulaan. Kelas perisian tengah Django boleh digunakan untuk mencapai ini, tetapi dalam versi terdahulu, ia boleh menyebabkan kod dilaksanakan lebih daripada sekali.

Penyelesaian untuk Versi Django < 1.7

Untuk versi Django sebelum 1.7, adalah disyorkan untuk meletakkan kod permulaan dalam salah satu fail __init__.py INSTALLED_APPS'. Berikut ialah contoh:

<code class="python">def startup():
    pass # load a big thing

startup()</code>

Penyelesaian untuk Django 1.7 dan Ke Atas

Django 1.7 memperkenalkan kaedah AppConfig.ready(), yang membolehkan anda menentukan kod permulaan. Menggunakan kaedah ini memastikan bahawa kod berjalan sekali sahaja semasa pemuatan apl.

<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>

Nota Tambahan

Apabila menggunakan ./manage.py runserver, kod permulaan mungkin laksana dua kali kerana operasi pelayan dalaman. Walau bagaimanapun, dalam senario penggunaan biasa atau muat semula automatik, kod tersebut dilaksanakan sekali sahaja.

Atas ialah kandungan terperinci Bagaimana untuk Melaksanakan Kod Sekali pada Django Startup dengan AppConfig?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn