2015-03-06 18 views
5

Wygląda na to, że Django pozwala na uruchomienie kodu przy starcie - kiedy uruchamia się aplikacja, nie jest to jasne i gdzie powinienem umieścić kod. Więc jak mogę wykonać kod przy starcie w Django 1.7?Wykonywanie kodu przy starcie w Django 1.7

+0

Co masz na myśli mówiąc "start"? Kiedy to, co zaczyna się dokładnie? – rnevius

+0

@ rnevius, aplikacja. –

Odpowiedz

11

Dla Django> = 1,7 można użyć AppConfig.ready() callback:

https://docs.djangoproject.com/en/dev/ref/applications/#django.apps.AppConfig.ready

dla poprzednich wersji, zobacz this answer.

Jeśli używasz metody AppConfig.ready():

1) Utwórz moduł myapp/apps.py i podklasy AppConfig. Na przykład:

from django.apps import AppConfig 

class MyAppConfig(AppConfig): 
    name = 'myapp' 
    def ready(self): 
    ... 

2) Edytuj myapp/__init__.py i zarejestrować swoją aplikację config:

default_app_config = 'myapp.apps.MyAppConfig' 

Zobacz https://docs.djangoproject.com/en/1.7/ref/applications/#configuring-applications szczegóły.

+0

To wciąż nie jest jasne. W jakim pliku powinienem go umieścić? Czy muszę dziedziczyć swoją klasę z AppConfig? Czy możesz pokazać mi przykład? –

+0

Tak, rozszerzysz klasę 'AppConfig' w module w pakiecie aplikacji. Zobacz tę odpowiedź dla przykładu realizacji: http://stackoverflow.com/a/22924754/2011147 – Selcuk

+0

Nadal nie jest jasne. Dlaczego plik o nazwie "signals.py", gdzie jest umieszczony? –

Powiązane problemy