Czy istnieje konwencja nazewnictwa dla aplikacji Django


116

Czy istnieje preferowana konwencja nazewnictwa przy tworzeniu aplikacji Django składającej się z więcej niż jednego słowa? Na przykład, które z poniższych jest preferowane?

  1. my_django_app
  2. my-django-app Aktualizacja: niedozwolone składniowo
  3. mydjangoapp Zalecane rozwiązanie

Chociaż wszystkie z nich mogą być opcjami 1 i 3 są syntaktycznie dozwolone, czy jest jakaś preferencja? Patrząc na sposób, w jaki Django tworzy nazwy tabel, łącząc nazwę aplikacji i nazwę modelu z podkreśleniem, opieram się na opcji nr 1.

Myśli?

Odpowiedzi:


108

Muszą to być prawidłowe nazwy pakietów. To wyklucza 2 („import my-django-app” byłoby błędem składniowym). PEP 8 mówi:

Moduły powinny mieć krótkie nazwy składające się wyłącznie z małych liter. Podkreślenia mogą być używane w nazwie modułu, jeśli poprawia to czytelność. Pakiety Pythona powinny również mieć krótkie nazwy składające się wyłącznie z małych liter, chociaż odradza się używanie podkreślenia.

Tak więc 1 i 3 są prawidłowe, ale 3 byłoby zalecanym podejściem.


1
Pomocny wpis na blogu dotyczący tego problemu, tylko do rozwinięcia: streamhacker.com/2011/01/03/django-application-conventions
Akhorus

7
Cześć @ surfer190. Dwie miarki Django zawierają mnóstwo dobrych praktyk. Wybierają liczbę pojedynczą: blog. Jest to ten sam wybór, gdy tworzysz Model: Blog jest preferowany nad Blogami.
Wim Feijen

2
Generalnie polecałbym stosowanie podkreślenia, ponieważ poprawiają czytelność i są powszechnie używane, na przykład często używam django_extensions i django_debug_toolbar.
Wim Feijen

14
@WimFeijen, wydaje się, że Dwie miarki Django, przynajmniej tutaj , zalecają używanie „liczby mnogiej wersji głównego modelu aplikacji” do nazw aplikacji, z wyjątkami, takimi jak aplikacja o nazwie blog, „dobry wyjątek”.
Caco

Poprawiono mnie. Dzięki @Caco za przyjrzenie się temu i nauczenie mnie.
Wim Feijen

11

kilka dobrych przykładów

  • graphene_django
  • użytkowników
  • Zamówienia
  • oauth2_provider
  • rest_framework
  • ankiety

mówiąc najprościej, app_namepowinny mieć krótkie nazwy składające się wyłącznie z małych liter. Podkreślenia mogą być używane w nazwie modułu, jeśli poprawia to czytelność. również powinna mieć krótką nazwę i może to być nazwa w liczbie mnogiej i pojedynczej


7

Nazwy katalogów aplikacji muszą być prawidłową nazwą pakietu w języku Python. Oznacza to, że opcja 2 jest całkowicie niedopuszczalna jako nazwa pakietu, chociaż nadal można jej używać do innych celów, takich jak dokumentacja. Ostatecznie wszystko sprowadza się do osobistego stylu. Jeśli wolisz opcję 3, użyj jej.


Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.