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

Mat*_*kin 100 django naming-conventions django-apps

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

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

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

思考?

thr*_*xil 90

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

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

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

  • 复数还是单数形式?`blog`或`blogs`? (18认同)
  • @WimFeijen,似乎两勺Django,至少[这里](https://pt.slideshare.net/accavdar/django-best-practices-46944311),建议使用'复数版本的应用程序的主模型'应用程序名称,例如名为blog的应用程序,是一个"好例外". (11认同)
  • 嗨@ surfer190.两勺Django包含了大量的好习惯.他们选择单数:博客.在创建模型时,它是相同的选择:博客优先于博客. (6认同)
  • 一般来说,我会推荐使用下划线,因为它们提高了可读性并且它们很常用,例如我经常使用 django_extensions 和 django_debug_toolbar。 (2认同)

Ign*_*ams 7

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


Jam*_*yda 5

一些很好的例子

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

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