应用程序的顺序INSTALLED_APPS是否重要?我问,因为我有settings文件夹有两个settings文件:base.py和production.py我把我所有的设置中base.py,然后在production.py写
`from base import *`
Run Code Online (Sandbox Code Playgroud)
并覆盖一些设置.在我的作品中,base.py我INSTALLED_APPS也是一个列表,而不是一个元组.因为我想删除一些production设置的应用程序.在production.py我想写:
NOT_USED_APPS = ['debut_toolbar', 'other_odd_app',]
INSTALLED_APPS = list(set(INSTALLED_APPS) - set(NOT_USED_APPS))
Run Code Online (Sandbox Code Playgroud)
在这种情况下,在应用程序的顺序INSTALLED_APPS是不一样的base.py
Rah*_*pta 27
是的,订单非常重要.
来自Django官方文档的INSTALLED_APPS设置:
当多个应用程序提供相同资源的不同版本(模板,静态文件,管理命令,转换)时,首先列出的应用程序
INSTALLED_APPS具有优先权.
示例1模板:
django.template.loaders.app_directories.Loader
如果在您的DjangoTemplates后端在TEMPLATES设置中启用了此模板加载器,或者如果您已将其作为Engine的参数传递给Engine,那么它将从文件系统上的Django应用程序加载模板.
对于每个应用程序INSTALLED_APPS,加载程序查找模板子目录.如果目录存在,Django将在那里寻找模板.
让我们说在我的项目中,我定义INSTALLED_APPS为:
INSTALLED_APPS = ('myproject.app1', 'myproject.app2')
Run Code Online (Sandbox Code Playgroud)
现在,我想获得模板some_template.html.然后get_template('some_template.html')将按some_template.html以下顺序在这些目录中查找:
/path/to/myproject/app1/templates/ # checks here first
/path/to/myproject/app2/templates/ # Then checks here
Run Code Online (Sandbox Code Playgroud)
然后它将使用它首先找到的那个.
引用该部分:
顺序
INSTALLED_APPS很重要!
示例2:翻译
Django应用以下算法来发现翻译:
LOCALE_PATHS具有最高优先级,首先出现的目录优先级高于稍后出现的目录.locale于每个已安装的应用程序中的目录INSTALLED_APPS.首先出现的优先级高于后来出现的优先级.django/conf/locale用作后备.我们可以看到订单在这里也很重要.
示例3管理命令:
从Django 1.7发布有关管理命令和顺序的说明INSTALLED_APPS:
当多个应用程序提供具有相同名称的管理命令时,Django会从首先出现的应用程序加载命令
INSTALLED_APPS.以前的版本从最后出现的应用程序加载了命令.这使管理命令的发现与Django的其他部分一致,这些部分依赖于
INSTALLED_APPS静态文件,模板和翻译等顺序.
| 归档时间: |
|
| 查看次数: |
3782 次 |
| 最近记录: |