Czy istnieje konwencja nazewnictwa dla aplikacji Django

Czy istnieje preferowana konwencja nazewnictwa dla tworzenia aplikacji Django składającej się z więcej niż jednego słowa? Na przykład, która z poniższych opcji jest preferowana?

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

Podczas gdy wszystkie z nich mogą być opcje 1 i 3 są dozwolone składniowo, czy są jakieś preferencje? Patrząc na sposób, w jaki Django tworzy nazwy tabel przez łącząc nazwę aplikacji i nazwę modelu z podkreśleniem, opieram się na opcji # 1.

Myśli?
Author: Matthew Rankin, 2010-06-23

3 answers

Muszą być poprawnymi nazwami pakietów. To wyklucza 2 ("import my-django-app" byłby błędem składni). PEP 8 says:

Moduły powinny mieć krótkie nazwy z małymi literami. Podkreślniki mogą być używane w nazwie modułu, jeśli poprawia czytelność. Pakiety Pythona powinny mają również krótkie, pisane małymi literami nazwy, chociaż użycie podkreślników jest zniechęcony.

Tak więc 1 i 3 są ważne, ale 3 byłoby zalecanym podejściem.

 77
Author: thraxil,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-06-23 13:12:46

Nazwy katalogów aplikacji muszą być poprawną nazwą pakietu Pythona. Oznacza to, że opcja 2 jest całkowicie niedopuszczalna jako Nazwa pakietu, chociaż nadal może być używana do innych celów, takich jak dokumentacja. W końcu sprowadza się to do osobistego stylu. Jeśli wolisz opcję 3, Użyj jej.

 4
Author: Ignacio Vazquez-Abrams,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-06-23 07:28:46

Moje głosy na 1 i 3, ale możesz sprawdzić kilka popularnych aplikacji: http://www.django-cms.org/ http://geodjango.org/

 -1
Author: Guard,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-06-23 07:23:30