Какова цель apps.py в Django 1.9?


132

Я просто пошел за примечания альфа - релиз для Django 1.9 и увидел , что startappкоманда управления в настоящее время добавляет apps.py файл .

Для чего нужен этот файл? В документации по startapp не было дополнительной информации.

Ответы:


136

Назначение apps.pyфайла:

Этот файл создан, чтобы помочь пользователю включить любую конфигурацию приложения для приложения. Используя это, вы можете настроить некоторые атрибуты приложения.

Из Application Configurationдокументации:

Объекты конфигурации приложения хранят метаданные для приложения. Некоторые атрибуты можно настроить в подклассах AppConfig. Другие устанавливаются Django и доступны только для чтения.

Пример из документов:

Допустим, вы создаете подключаемое приложение под названием "Rock ’n’ roll", а затем, чтобы указать имя администратора, мы можем сделать следующее:

В rock_n_rollприложении мы создаем RockNRollConfigкласс AppConfig.

#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_configв rock_n_roll/__init__.pyфайле.

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

Это приведет RockNRollConfigк использованию, когда INSTALLED_APPSпросто содержит 'rock_n_roll'. Это позволяет нам использовать AppConfigфункции, не требуя от наших пользователей обновления их INSTALLED_APPSнастроек.


К сожалению, я не получил вашего ответа
hspandher

2
without requiring our users to update their INSTALLED_APPS setting.: Что это означает: В основном, если я не делаю default_app_config = 'rock_n_roll.apps.RockNRollConfig'этого, я должен упомянуть в INSTALLED_APPSdefault_app_config = 'rock_n_roll.apps.RockNRollConfig'
Сантош

15

Это рекомендуемое место для размещения конфигурации вашего приложения . Эта функция существует с версии 1.7, но для повышения ее использования и упрощения настройки apps.pyфайл был добавлен в шаблон приложения по умолчанию.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.