What is helper
Helper is a layer of business logic. Each package, in helpers, is a helper.
helpers directory skeleton
helpers/
├── wallpaper # each package in helpers represents one mongodb databse instance
│ ├── album.py
│ ├── category.py
│ ├── image.py
│ ├── img2tag.py
│ ├── __init__.py
│ └── tag.py
├── __init__.py
├── settings.py # here is package needed to be installed automatically
Create helper
To create a helper, first create a package in helpers, for example named with wallpaper , and define 'all' list attribute explicitly in __init__.py file. The attribute __all__, it's job is to include all modules needed to be used.
__all__ = ['img2tag']
Install helper in helpers/setting.py
INSTALLED_HELPERS = (
'wallpaper',
)
How to use helper
import helper like this
from helpers import wallpaper as wallpaper_helper
How turbo instantiate helper
Each helper is a python package. Put code bellow in package __init__.py file. __all__ list includes module need to be instantiated.
#wallpaper/__init__.py
__all__ = ['album', 'img2tag']
In each module included in __all__, put Class that need to be used into list MODEL_SLOTS
#wallpaper/album.py
MODEL_SLOTS = ['Album', 'FavorAlbum']
Each Class, for example like Album, both it's Class type and instance exist in helper wallpaper namespace.
wallpaper_helper.favor_album # import instance variable
wallpaper_helper.FavorAlbum # import Class type