是否有Django应用程序的命名约定

时间:2010-06-23 03:09:08

标签: django naming-conventions django-apps

创建包含多个单词的Django应用程序是否有首选命名约定?例如,以下哪一项更受欢迎?

  1. my_django_app
  2. my-django-app 更新:语法不允许
  3. mydjangoapp 推荐的解决方案
  4. 虽然所有可能 选项1和3 在语法上允许,是否有偏好?看看Django通过将应用程序名称和模型名称与下划线组合来创建表名的方式,我倾向于选项#1。

    思想?

4 个答案:

答案 0 :(得分:85)

它们必须是有效的包名称。排除2(“import my-django-app”将是语法错误)。 PEP 8说:

  

模块应该有简短的全小写名称。可以使用下划线   在模块名称中,如果它提高了可读性。 Python包应该   虽然使用下划线,但也有简短的全小写名称   气馁。

因此,1和3都是有效的,但推荐的方法是3。

答案 1 :(得分:5)

App目录名称必须是有效的Python包名称。这意味着选项2作为包名称是完全不允许的,尽管它仍然可以用于其他目的,例如文档。最终归结为个人风格。如果您更喜欢选项3,那么请使用它。

答案 2 :(得分:2)

一些很好的例子

  • graphene_django
  • 用户
  • 订单
  • oauth2_provider
  • rest_framework
  • 投票

用简单的术语来说,app_name应该使用短的全小写名称。如果模块名称可以提高可读性,则可以在模块名称中使用下划线。也应该有一个短名称,可以是复数和单数名称

答案 3 :(得分:0)

我对1和3的投票,但您可以查看几个热门应用: http://www.django-cms.org/ http://geodjango.org/