2009-10-13 12 views
12

Według the documentation:Co to jest "aplikacja" w Django?

Aplikacja to aplikacja internetowa, która robi coś - na przykład system blogów, a bazy rejestrów publicznych lub prostą aplikację ankietę. Projekt jest zbiorem konfiguracji i aplikacji dla konkretnej witryny sieci Web. Projekt może zawierać wiele aplikacji. Aplikacja może być w wielu projektach.

Jakie są jednak inne przykłady tego, co stanowi "aplikację"?

Odpowiedz

14

Co sprawia, że ​​app (dla nas) jest jedno:

aplikacja jest jednostką powtórnego wykorzystania

Jeśli moglibyśmy chcesz podzielić go używać gdzieś indziej, to jest ok.

Jeśli ma model danych do wielokrotnego użytku, jest to aplikacja. Profile użytkowników: App. Klienci: aplikacja. Historia statystyk klientów (trudno to wyjaśnić bez podania zbyt wielu szczegółów): App. Raportowanie: aplikacja. Analiza aktuarialna: App. Vendor API do gromadzenia danych: App.

Jeśli jest unikatowy i nigdy nie będzie ponownie użyty (tj. Dla konkretnego klienta), jest to aplikacja zależna od innych aplikacji. Obciążenia danych są specyficzne dla klienta. Każda z nich opiera się na istniejącej parze aplikacji (Przesyłanie zbiorcze i Historia statystyk).

+0

Ma to sens i potwierdza to, co myślałem. Dzięki. –

2

Zarządzanie użytkownikami może równie dobrze być aplikacją, jeśli nie zamierzasz używać wbudowanego środowiska użytkowników Django.

Posiada interfejsy użytkownika i zdefiniowane modele dla przechowywanych danych i jest naprawdę oddzielny od aplikacji Blog lub Wiki (chociaż informacje będą udostępniane).

Tak długo, jak obie aplikacje są w tym samym "projekcie", powinny one używać tych samych ustawień dla DB. Powinieneś być w stanie, po prostu upewniając się, że odpowiednie modele są importowane, gdy próbujesz z nich korzystać.

Aby uzyskać więcej informacji, patrz this link.

+0

ok. wydaje się, że użytkownicy byli złym wyborem. Ale możesz udostępniać dane między aplikacjami? –

+0

Tak, powinieneś być w stanie. Edytowany post, aby podać więcej informacji. –

4

Aplikacje Django to pakiety funkcji wielokrotnego użytku. Po uruchomieniu łatwo jest użyć jednej niestandardowej aplikacji do swojego projektu, ale "sposób Django" polega na podzieleniu go na osobne aplikacje, z których każda wykonuje tylko jedną rzecz. Możesz zajrzeć do django.contrib, gdzie znajdziesz przykłady naprawdę dobrze wykonanych aplikacji wielokrotnego użytku.

Niedawny przykład: klient potrzebował sposobu na zaimportowanie danych CSV do modeli Django. Najprostszym sposobem jest po prostu dodanie modelu z FileField i napisanie szybkiego parsera dla określonego formatu tego, co przesyłają. To działałoby dobrze, dopóki format się nie zmienił i musiałem przejść, aby parser się zgadzał. Jest to jednak często powtarzające się zadanie (importowanie danych) i niezwiązane z istniejącą aplikacją (zarządzanie tymi danymi), więc sam ją zepsułem. Ta aplikacja może importować dane dla dowolnego aktywnego modelu. Teraz, gdy klient potrzebuje funkcji importowania, po prostu dodaję ten kod do installed_apps i uruchom syncdb.

Jest to wyrok, w którym należy samodzielnie wydać aplikację, ale dla mnie zasadą jest to, że jeśli znowu coś zrobię, poświęcę dodatkowy czas, aby stworzyć ogólną aplikację. Oznacza to, że utworzyłem kilka małych aplikacji (niektóre zawierają tylko znacznik szablonu), ale niewiele to kosztuje, jeśli chodzi o przyszłe zyski.