Die wichtigsten Richtlinien ähneln denen anderer großer Code-Projekte. Apps sollten eine eindeutige, klar definierte Verantwortung haben. Der Name "Anwendung" ist eine falsche Bezeichnung; Django-Apps sollten eher als wiederverwendbare Komponenten betrachtet werden, die zusammengesteckt werden können, um eine echte Anwendung zu erstellen. Tests für jede App sollten in dieser App enthalten sein. Apps sollten so weit wie möglich voneinander entkoppelt sein, aber es wird eindeutig Abhängigkeiten geben. Das Ziel sollte also sein, den Abhängigkeitsgraphen so einfach und vernünftig wie möglich zu halten.
Ich bevorzuge es, alle Vorlagen für ein Projekt in einem einzigen projektweiten Templates-Verzeichnis mit einem Unterverzeichnis für jede App zu behalten (ein Vorlagenunterverzeichnis für jede App ist eine sehr starke Konvention in Django, da es den Vorlagennamen vermeidet) Kollisionen zwischen Apps). Der Grund für ein einzelnes projektweites Vorlagenverzeichnis ist, dass Vorlagen, Vorlagenvererbungsbäume und Blocknamen ziemlich projektspezifisch sein können. Daher ist es schwierig, "Standard" -App-Vorlagen bereitzustellen, die an jedes Projekt angeschlossen werden können.Es gab einige Versuche, sich mit den Standard-Namenskonventionen für base-site-weite Templates und die von ihnen definierten Blöcke zu befassen, aber ich habe noch keinen Standard-emerge gesehen (die Art, wie sie Dinge bei Pinax erledigen, ist wahrscheinlich der nächste, den wir haben Standard).
Re "String Externalisierung", wenn Sie i18n und l10n meinen, Django hat starke Unterstützung dafür und Standard-Orte, wo es die .po-Dateien setzt - überprüfen Sie die docs.
In dieser Antwort müssen Sie die ersten Unterstriche in \ _ \ _ init__.py unterdrücken, um zu vermeiden, dass sie von der Markup-Engine als fett formatierter Text interpretiert werden. – akaihola