Есть ли соглашение об именах для приложений Django

116

Есть ли предпочтительное соглашение об именах для создания приложения Django, состоящего из более чем одного слова? Например, что из перечисленного предпочтительнее?

  1. my_django_app
  2. my-django-app Обновление: не разрешено синтаксически
  3. mydjangoapp Рекомендуемое решение

Хотя все они могут быть вариантами 1 и 3, синтаксически разрешены, есть ли предпочтения? Глядя на то, как Django создает имена таблиц, комбинируя имя приложения и имя модели с подчеркиванием, я склоняюсь к варианту №1.

Мысли?

Мэттью Рэнкин
источник

Ответы:

108

Это должны быть допустимые имена пакетов. Это исключает 2 («import my-django-app» было бы синтаксической ошибкой). PEP 8 говорит:

Модули должны иметь короткие имена, написанные строчными буквами. Подчеркивание можно использовать в имени модуля, если это улучшает читаемость. Пакеты Python также должны иметь короткие имена, написанные строчными буквами, хотя использование подчеркиваний не рекомендуется.

Итак, 1 и 3 действительны, но 3 будет рекомендуемым подходом.

thraxil
источник
1
Полезное
Akhorus
7
Привет @ surfer190. Две порции Django содержат массу хороших практик. Они выбирают единственное: блог. Это тот же выбор, когда вы создаете модель: блог предпочтительнее блогов.
Вим Фейен
2
В общем, я бы рекомендовал использовать подчеркивания, потому что они улучшают читаемость и они широко используются, например, я часто использую django_extensions и django_debug_toolbar.
Вим Фейен
14
@WimFeijen, похоже, что Две совки Django, по крайней мере, здесь , рекомендуют использовать «множественную версию основной модели приложения» для имен приложений, с такими исключениями, как приложение с именем blog, «хорошее исключение».
Како
Я исправился. Спасибо @Caco за то, что изучил это и обучил меня.
Wim Feijen
11

несколько хороших примеров

  • graphene_django
  • пользователи
  • заказы
  • oauth2_provider
  • rest_framework
  • опросы

Говоря простым языком, они app_nameдолжны иметь короткие имена в нижнем регистре. Подчеркивание можно использовать в имени модуля, если это улучшает читаемость. также должно иметь короткое имя, это может быть имя во множественном или единственном числе

Джамиль Нойда
источник
7

Имена каталогов приложений должны быть действительным именем пакета Python. Это означает, что вариант 2 совершенно недопустим в качестве имени пакета, хотя его можно использовать для других целей, например, для документации. В конце концов, все сводится к личному стилю. Если вы предпочитаете вариант 3, используйте его.

Игнасио Васкес-Абрамс
источник
0

Мои голоса за 1 и 3, но вы можете проверить несколько популярных приложений: http://www.django-cms.org/ http://geodjango.org/

охрана
источник
2
Еще больше приложений можно найти здесь: djangopackages.org . Помните, что пакеты часто называются с использованием минусов: django-debug-toolbar, в то время как вы должны использовать «django_debug_toolbar» в настройках INSTALLED_APPS.
Вим Фейен