153

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

  1. my_django_app
  2. my-django-app 更新:语法上不允许
  3. mydjangoapp 推荐解决方案

虽然它们都可能 是语法上允许的选项 1 和 3,但有偏好吗?查看 Django 通过将应用程序名称和模型名称与下划线组合来创建表名的方式,我倾向于选项 #1。

想法?

4

4 回答 4

147

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

模块应该有简短的全小写名称。如果提高可读性,可以在模块名称中使用下划线。Python 包也应该有简短的全小写名称,尽管不鼓励使用下划线。

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

于 2010-06-23T13:12:46.973 回答
26

一些很好的例子

  • 石墨烯_django
  • 用户
  • 订单
  • oauth2_provider
  • rest_framework
  • 民意调查

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

于 2019-01-08T05:23:42.387 回答
8

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

于 2010-06-23T07:28:46.053 回答
0

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

于 2010-06-23T07:23:30.613 回答