Gibt es eine Namenskonvention für Django-Apps?


115

Gibt es eine bevorzugte Namenskonvention zum Erstellen einer Django-App, die aus mehr als einem Wort besteht? Welche der folgenden Optionen wird beispielsweise bevorzugt?

  1. my_django_app
  2. my-django-app Update: Syntaktisch nicht erlaubt
  3. mydjangoapp Empfohlene Lösung

Während alle Optionen 1 und 3 syntaktisch zulässig sind, gibt es eine Präferenz? Wenn ich mir anschaue, wie Django die Tabellennamen erstellt, indem er den App-Namen und den Modellnamen mit einem Unterstrich kombiniert, lehne ich mich an Option 1.

Gedanken?

Antworten:


108

Sie müssen gültige Paketnamen sein. Das schließt 2 aus ("import my-django-app" wäre ein Syntaxfehler). PEP 8 sagt:

Module sollten kurze Namen in Kleinbuchstaben haben. Unterstriche können im Modulnamen verwendet werden, wenn dies die Lesbarkeit verbessert. Python-Pakete sollten auch kurze Namen in Kleinbuchstaben enthalten, obwohl von der Verwendung von Unterstrichen abgeraten wird.

1 und 3 sind also beide gültig, aber 3 wäre der empfohlene Ansatz.


1
Ein hilfreicher Blog-Beitrag zu diesem Problem, nur um es zu erweitern: streamhacker.com/2011/01/03/django-application-conventions
Akhorus

7
Hi @ surfer190. Zwei Kugeln Django enthalten eine Menge bewährter Verfahren. Sie wählen den Singular: Blog. Dies ist die gleiche Wahl, wenn Sie ein Modell erstellen: Blog wird gegenüber Blogs bevorzugt.
Wim Feijen

2
Im Allgemeinen würde ich die Verwendung von Unterstrichen empfehlen, da diese die Lesbarkeit verbessern und häufig verwendet werden. Beispielsweise verwende ich häufig django_extensions und django_debug_toolbar.
Wim Feijen

14
@WimFeijen, es scheint, dass zwei Kugeln von Django, zumindest hier , die Verwendung einer ' Pluralversion des Hauptmodells der App' für App-Namen empfehlen, mit Ausnahmen wie einer App namens Blog, einer 'guten Ausnahme'.
Caco

Ich stehe korrigiert. Vielen Dank an @Caco, dass Sie sich damit befasst und mich aufgeklärt haben.
Wim Feijen

11

einige gute Beispiele

  • graphene_django
  • Benutzer
  • Aufträge
  • oauth2_provider
  • rest_framework
  • Umfragen

in einfachen Worten, app_namesollte kurze Namen in Kleinbuchstaben haben. Unterstriche können im Modulnamen verwendet werden, wenn dies die Lesbarkeit verbessert. sollte auch einen kurzen Namen haben und es kann ein Plural- und Singularname sein


7

App-Verzeichnisnamen müssen ein gültiger Python-Paketname sein. Dies bedeutet, dass Option 2 als Paketname völlig unzulässig ist, obwohl sie weiterhin für andere Zwecke wie die Dokumentation verwendet werden kann. Am Ende kommt es auf den persönlichen Stil an. Wenn Sie Option 3 bevorzugen, verwenden Sie diese.


Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.