Strategia aplikacji Django

14

Pracuję chwilę nad projektem Django, który ostatnio trochę się rozwija. Zastanawiałem się trochę, jaką strategię zastosować, aby ułatwić sobie obsługę. Jedną rzeczą, o której chciałbym się dowiedzieć, byłoby podzielenie mojej aplikacji na kilka mniejszych aplikacji. To zmniejszyłoby mój widok i modele plików i rozdzieliło niektóre obawy.

Niepokoi mnie to, że w moich aplikacjach miałbym kilka metod pomocniczych, które będą używane w różnych aplikacjach. Również niektóre modele będą musiały być współużytkowane / używane w różnych aplikacjach. Czy to miałoby sens? Nie idzie to dobrze z rozdzieleniem problemów, które miałem nadzieję osiągnąć, dzieląc moją aplikację na kilka mniejszych aplikacji. Jakie byłoby dobre podejście do dzielenia się metodami pomocniczymi, modelami itp. Między aplikacjami?

Mikael
źródło

Odpowiedzi:

11

Jeśli Twój projekt staje się duży, pomyśl o aplikacjach jako modułach wielokrotnego użytku. Możesz podzielić funkcjonalność udostępnianą przez aplikacje na własną aplikację.

Więcej dyskusji na ten temat można znaleźć w poniższych dyskusjach:

śmiertelnie
źródło
Co jeśli aplikacja musi dodać niektóre elementy menu do nawigacji projektu? stackoverflow.com/questions/23405610
utapyngo
2

Lubię tworzyć base/aplikację bez widoków i bez chwil na udostępnianie rzeczy.

Jednym z problemów, który może wystąpić, gdy modele są rozproszone w wielu aplikacjach, jest cykliczny import. Można tego uniknąć, stosując ciągi znaków odnoszące się do innych modeli ( foo = ForeignKey("someapp.Foo")zamiast foo = ForeignKey(someapp.models.Foo)). Django pozwala używać takich ciągów znaków w większej liczbie miejsc.

Simon Pantzare
źródło