Django 1.9中apps.py的目的是什么?


Answers:


136

apps.py文件目的:

创建此文件是为了帮助用户包括该应用程序的任何应用程序配置。使用此功能,您可以配置应用程序的某些属性。

Application Configuration文档:

应用程序配置对象存储应用程序的元数据。可以在AppConfig子类中配置某些属性。其他设置由Django设置且为只读。

来自文档的示例

假设您要创建一个名为的可插拔应用"Rock ’n’ roll",然后为管理员提供适当的名称,我们可以执行以下操作:

rock_n_rollapp中,我们创建一个RockNRollConfigAppConfig类。

#rock_n_roll/apps.py
from django.apps import AppConfig

class RockNRollConfig(AppConfig): # Our app config class
    name = 'rock_n_roll'
    verbose_name = "Rock ’n’ roll"

AppConfig通过default_app_configrock_n_roll/__init__.py文件中指定,我们可以使您的应用程序默认加载此子类。

# rock_n_roll/__init__.py    
default_app_config = 'rock_n_roll.apps.RockNRollConfig'

这样做会导致仅在包含RockNRollConfig时使用。这使我们可以使用功能,而无需用户更新其设置。INSTALLED_APPS'rock_n_roll'AppConfigINSTALLED_APPS


遗憾的是,我没有得到您的答复
hspandher

2
without requiring our users to update their INSTALLED_APPS setting.:这是什么意思:基本上,如果我不这样做,default_app_config = 'rock_n_roll.apps.RockNRollConfig'那么我必须在INSTALLED_APPS中提及default_app_config = 'rock_n_roll.apps.RockNRollConfig'
Santhosh Yedidi,

15

建议放置应用程序配置。此功能自1.7开始就已存在,但是为了促进其使用并简化配置,该apps.py文件已添加到默认应用程序模板中。

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.