Существует ли соглашение об именах для приложений Django

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

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

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

Мысли?

Ответ 1

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

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

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

Ответ 2

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