Ich habe wirklich Probleme mit dieser ganzen App-Idee. Ich lese viele Tutorials und Style Guides und ich weiß, dass ich versuchen sollte, spezialisierte Apps zu erstellen, die genau eine Sache machen. Das alles macht Sinn, wenn man sich ein einfaches Tutorial-Projekt anschaut, aber sobald es zu einem komplexen realen Projekt kommt, kann ich nicht feststellen, wie ich die Grenzen zwischen verschiedenen Apps ziehen soll.Django: Best Practice für die Aufteilung von Projekten in Apps
Eines der Probleme ist, dass ich eine Website (oder mehrere Websites) haben möchte, wo der Benutzer viele verschiedene Sachen sieht. Inhalte, die aus verschiedenen Apps stammen sollten, wenn die App-Designregeln befolgt werden. Wie würde ich so etwas realisieren? Meine erste Idee war, eine App namens ui
zu erstellen, die nur ALLE Ansichten behandelt, die tatsächlich zu einer Vorlage führen, und alle anderen Apps enthalten die Modelle und Hilfsfunktionen. Aber ich befürchte, dass die ui
App viel zu groß werden wird.
Ihnen ein kleines Beispiel geben: Lasse Ich möchte einen Ort haben, wo der Benutzer die folgenden Aufgaben ausführen kann:
- Wählen Sie ein Thema
- Upload einige Optionen zu dem ausgewählten Thema eingestellt Dateien, die mit dem Konto
- einige der hochgeladenen Dateien auf das Thema zugeordnet sind
- Datensatz einige Audio zuordnen, die auf das Thema bezogen werden Rechts
jetzt, ich würde drei Anwendungen erstellen:
- Themen (enthält das Thema Modell und einige verwandte Modelle)
- Ressourcen (enthält das Ressourcenmodell, Griffe Uploads)
- Audio (Griffe alle das Audio-Aufnahme und Verarbeitung Material)
Aber dann würde ich eine Art von main
oder ui
App benötigt diese ap zu handhaben, wie ps interagieren und erstellen die eigentliche Seite, an der alle Apps beteiligt sind.
Also, gibt es einen "richtigen" Weg, dies zu tun? Oder gibt es irgendwelche Muster, die ich benutzen kann? Ich würde auch Links zu guten Quellen zu diesem Thema schätzen, obwohl ich schon einige gelesen habe.
vielen dank! vielleicht überlegte ich das ganze App-Muster ein wenig. aber das macht eigentlich viel mehr Sinn. Eine Frage jedoch: Wie funktioniert "Override auf Projektebene"? Oder was meinst du damit? – basilikum
@basilikum Djangos Vererbungssystem sucht zunächst auf der Ebene Ihres Projekts nach einer Vorlage oder einer CSS-Datei und greift dann auf die App-Ebene usw. zurück (abhängig von Ihren [Einstellungen] (https://docs.djangoproject.com/en/1.5/ref/ contrib/staticfiles/# staticfiles-finders, von oben nach unten) Dies ist von großem Nutzen, wenn Sie Teile Ihrer Code-Cross-Projekte wiederverwenden, wo Sie keine projektspezifischen Style/Template-Hooks verwenden möchten. Wohlgemerkt, package deep-Modelle erfordern Import-Anweisungen in der init-Datei und die Verwendung des 'app_label'-Arguments in der" Meta "-Klasse eines Modells. –
Danke nochmal! Ich habe bereits etwas von meinem Code umstrukturiert und es ist schon viel sauberer für mich. – basilikum