当前位置:  开发笔记 > 编程语言 > 正文

关于django INSTALLED_APPS命名约定有点困惑

如何解决《关于djangoINSTALLED_APPS命名约定有点困惑》经验,为你挑选了1个好方法。

该网站上的教程创建了一个名为polls的应用程序.它使用的是django 1.9,所以它在INSTALLED_APPS中

polls.apps.PollsConfig

我正在观看他为应用程序时事通讯命名的教程,并且在他的INSTALLED_APPS中

newsletter

不过,他正在使用1.8.我使用的是1.9.我已经看过其他教程了,他们也只是在语法中添加了一个没有点的名字.我意识到事情可能会有所不同,这是理解的.要清楚,如果我命名我的应用程序狗.在已安装的应用程序中,它将被命名为这样

dogs.apps.DogsConfig

或者如果它是树,那就是

tree.apps.TreeConfig

这是命名惯例的方式吗?我也会认为在较新的版本中会更短,更方便.所以从仅仅添加

newsletter,

不得不打字

polls.apps.PollsConfig

对我来说似乎很奇怪.但我是新人,所以我可能会错过一些东西.欢迎提出任何建议



1> rodrigo..:

这是应用程序配置功能,是Django 1.7的新功能.

基本上,现在您可以列出INSTALLED_APPS包含应用程序的模块或从中派生的类,django.apps.AppConfig并定义应用程序的行为.

此功能提供了几个优点:

可以更轻松地配置应用程序,甚至可以进行子类化以进行自定义.

您可以在同一模块中拥有多个应用.

应用程序模块可以定义特殊模块变量default_app_config以指定它们的名称AppConfig,以便它们可以使用新功能而无需在其中指定该类的全名INSTALLED_APPS.但这是一个向后兼容功能,建议使用新的应用程序来编写全AppConfig名.

无论如何,大多数django/contrib应用程序都使用它default_app_config,以便与旧配置兼容.例如,参见文件django/contrib/messages/__init__.py只是:

from django.contrib.messages.api import *
from django.contrib.messages.constants import *

default_app_config = 'django.contrib.messages.apps.MessagesConfig'

因此,根据OP请求添加它:

如果你添加INSTALLED_APPS了typename foo.apps.FooConfig,那么该类将用于设置foo应用程序1.7样式(推荐).

如果添加INSTALLED_APPS普通名称foo,则:

如果有一个变量,foo.default_app_config这个类将用于设置foo应用程序,1.7风格.大多数(全部?)标准Django应用程序都有这个变量,所以INSTALLED_APPS当你从Django-1.6升级到Django-1.7时你不需要改变你的.

如果没有这样的变量,则将使用1.6样式应用程序,其中包含高级配置选项的默认值.

推荐阅读
凹凸曼00威威_694
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有