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