django-charge est une application de chargement module et objet pour Django.
Exemples
Pour une documentation complète de l'API, s'il vous plaît se référer à http://django-load.readthedocs.org.
Supposons que votre application veut charger tous les fichiers plugins.py des applications installées, pour permettre à ces applications pour étendre votre application. Vous pouvez atteindre ce comme ceci:
de django_load.core charge de l'importation
charge («plugins»)
Maintenant, disons que vous voulez faire la même chose, mais en fait faire quelque chose avec ces modules, plus spécifiques, trouver tous les objets dans ces modules, qui sont sous-classes de BasePlugin et appellent notre fonction de do_something avec ces objets:
de django_load.core iterload d'importation
pour le module dans iterload ("plugins"):
& Nbsp; pour nom dir (module):
& Nbsp; obj = getattr (module, nom)
& Nbsp; si issubclass (obj, BasePlugin):
& Nbsp; do_something (obj)
Vous pourriez également avoir un paramètre appelé MY_APP_PLUGINS qui contient les chemins d'importation similaires à MIDDLEWARE_CLASSES. Vous voulez charger ces plugins et appeler la fonction do_something avec eux:
de django_load.core iterload_objects d'importation
à partir de paramètres django.conf d'importation
for obj in iterload_object (settings.MY_APP_PLUGINS):
& Nbsp; do_something (obj)
Si vous voulez seulement pour charger un seul objet, vous pouvez le faire aussi. Disons que vous voulez charger MyObject du module de mypackage.mymodule:
de django_load.core load_object d'importation
obj = load_object ('mypackage.mymodule.MyObject')
Caractéristiques :
- charge tous les modules de toutes les applications installées avec un nom donné.
- Charger tous les modules de toutes les applications installées avec un prénom et itérer sur eux.
- Chargez un objet à partir d'un module à l'aide d'une des classes de middleware comme chemin d'importation.
- Unittested (voir http://ci.django-cms.org/job/django-load/)
- documentée (voir http://django-load.readthedocs.org)
Exigences :
- Python
- Django
Commentaires non trouvées