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

问题描述:

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

  1. my_django_app
  2. my-django-app 更新:不允许语法
  3. mydjangoapp推荐溶液

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

想法?

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

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

所以,1和3都是有效的,但3将是推荐的方法。

+0

关于此问题的博客文章很有用,只是为了扩展:http://streamhacker.com/2011/01/03/django-application-conventions/ – Akhorus 2015-12-23 15:34:56

+8

复数或单数形式? 'blog'还是'blogs'? – surfer190 2016-05-11 11:12:22

+2

Hi @ surfer190。 Django的两个勺子包含了很多好的做法。他们选择单数:博客。创建模型时的选择是相同的:博客优先于博客。 – 2017-01-18 17:14:46

我的票为1和3,但你可以检查一些流行的应用程序: http://www.django-cms.org/ http://geodjango.org/

+1

更多的应用程序在这里:https://djangopackages.org/。请注意,软件包通常使用缺陷命名:django-debug-toolbar,而您必须在INSTALLED_APPS设置中使用“django_debug_toolbar”。 – 2017-01-18 17:19:27

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