What is the purpose of apps.py in Django 1.9?
I just went over the alpha release notes for Django 1.9 and saw that the startapp management command now adds an apps.py file. What's the purpose of this file? The startapp documentation didn't provide more information.
This file is created to help the user include any application configuration for the app. Using this, you can configure some of the attributes of the application.
Application Configuration documentation:
Application configuration objects store metadata for an application.
Some attributes can be configured in AppConfig subclasses. Others are
set by Django and read-only.
Example from the docs:
Lets say you’re creating a pluggable app called
"Rock ’n’ roll", then to provide a proper name for the admin we can do the following:
rock_n_roll app, we create a
RockNRollConfig AppConfig class.
#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"
We can make your application load this
AppConfig subclass by default by specifying the
default_app_config in the
# rock_n_roll/__init__.py default_app_config = 'rock_n_roll.apps.RockNRollConfig'
Doing this will cause
RockNRollConfig to be used when
INSTALLED_APPS just contains
'rock_n_roll'. This allows us to make use of
AppConfig features without requiring our users to update their
It is the recommended place to put your application configuration. This feature has been here since 1.7, but to promote its use and enable easier configuration, the
apps.py file has been added to the default app template.
- Database Administration Tutorials
- Programming Tutorials & IT News
- Linux & DevOps World
- Entertainment & General News
- Games & eSport