Django应用程式有命名惯例吗?


115

创建包含多个单词的Django应用程序时,是否存在首选的命名约定?例如,以下哪一项是优选的?

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

虽然语法上都允许所有 选项1和3,但是是否有偏好?看看Django通过将应用程序名称和模型名称与下划线组合在一起来创建表名称的方式,我倾向于选择选项1。

有什么想法吗?

Answers:


108

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

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

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


1
关于此问题的有用博客文章仅供
参考

7
嗨@ surfer190。两勺Django包含了大量的良好做法。他们选择单数:博客。创建模型时,这是相同的选择:博客优先于博客。
Wim Feijen

2
通常,我建议使用下划线,因为下划线会提高可读性并且很常用,例如,我经常使用django_extensions和django_debug_toolbar。
Wim Feijen

14
@WimFeijen,似乎两勺Django的,至少在这里,建议使用的应用程序名称“的应用程序的主模型的复数形式”,与喜欢的应用命名的博客,“好例外”的例外。
Caco

我站得住了。感谢@Caco调查并教育了我。
Wim Feijen

11

一些很好的例子

  • graphene_django
  • 使用者
  • 命令
  • oauth2_provider
  • rest_framework
  • 民意调查

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


7

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


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.