Jeśli plik app/views.py jest bardzo duży, czy powinienem go oddzielić? Jeśli tak, jaki jest najlepszy sposób na zrobienie tego?Oddzielanie widoków aplikacji Django
Odpowiedz
Nie ma generic najlepszy sposób. Ale jest pewna właściwa droga dla twojej sytuacji.
- umieścić poglądy w swoich własnych plikówi importować je w widoku. To jest dobre, by zobaczyć, jak to działa
- dokonać oddzielną aplikację wewnątrz projektu, aby utrzymać zestaw poglądów
- tworzyć własne generic views który podziela poglądy wspólne dla większości swoich aplikacji
Tylko jako przykład wyjściowego: polecam zacząć od modelu i działa się w górę:
- jak wiele modeli masz?
- Czy rzeczywiście wszystkie są powiązane z, czy mogą być zgrupowane?
- jeśli można pogrupowane podzielić aplikację na dwie aplikacje
- więc będziesz również podzielić poglądy
- określenia, które zobaczyć funkcje są podobne i czynią je generic.
Oddzielę widoki o podobnym przeznaczeniu lub funkcjonalności w jednym pliku i uwzględnię to w views.py. Robię to tylko dla czytelności i konserwacji. Na przykład widoki CRUD dla określonego obiektu lub grupy obiektów.
Importując te widoki bezpośrednio do głównego pliku views.py, umożliwia osobom nie znającym konwencji, aby znaleźć to, co jest gdzie.
views/object_view.py
Niektórzy deweloperzy swoich rzutach python package zamiast modułu. Oznacza to po prostu utworzenie katalogu o nazwie views
w aplikacji, a następnie umieszczenie każdego widoku we własnym module (pliku) w tym pakiecie.
Następnie tworzysz plik __init__.py
(co czyni go pakietem). Ten plik może być pusty lub może importować wszystkie moduły widoku do własnej przestrzeni nazw.
Jeśli jest pusty, należy zaimportować każdy potrzebny widok bezpośrednio, w przeciwnym razie można go zaimportować tak, jakby był to moduł views.py.
W idealnym świecie nie powinieneś tego robić. Zamiast tego spróbuj przekształcić swój kod w różne aplikacje django dla każdego podcelu, którego potrzebuje Twój projekt. W ten sposób możesz podzielić swój projekt nawet lepiej niż gdybyś podzielił tylko plik views.py.
uzyskać wskazówki, w jaki sposób rozdzielić swój projekt w różnych aplikacjach, polecam czytanie Practical Django Projects James Bennetta, co jest, co ja ponownie czyta teraz :)
To jest to, co robię dla moich obiektów modelu, ponieważ pracuję z dużą starszą domeną. – ThatAintWorking