What is the purpose of app.py in django apps?
Even though the details are wrong (there's no app.py in new Django projects), the question is still valid.
__init__.py is imported implicitly when importing a sub-module.  So if something in __init__.py executes automatically with side effects, you might run into unintended consequences.  Doing everything in app.py incurs a longer import, but separates package init from app init logic.
In Django 1.4 and above :

There is a new file called app.py in every django application. It defines the scope of the app and some initials required when loaded.

Why don't they use __init__.py for the purpose? Any advantage over __init__.py approach? Can you link to some official documentation for the same?