Où dois-fonctions de l'utilitaire de vivre dans Django?
Où devrait fonctions de l'utilitaire de vivre dans Django? Des fonctions comme la coutume le cryptage/décryptage d'un nombre, l'envoi de tweets, envoyer des courriels, de la vérification de la propriété d'objet, la coutume de validation de la saisie, etc. Répétitif et personnalisé des trucs que j'utilise dans un certain nombre de places dans mon application. Je suis définitivement en rupture SEC maintenant.
J'ai vu des démos où les fonctions ont été définies dans models.py, bien que cela ne semblait pas conceptuellement le droit de me. Faut-il aller dans un "utilitaires" app qui sont importés dans mon projet? Si oui, où vont-ils dans les services de l'app? L'models.py fichier?
Merci pour votre aide à ce n00b out.
Mise à JOUR: Permettez-moi d'être encore plus spécifique. Dire que j'ai besoin d'une fonction "light_encrypt(nombre)" qui prend le paramètre "nombre", multiplie le résultat par 7, ajoute 10 et renvoie le résultat, et une autre fonction "light_decrypt(encr_number) qui prend le param "encr_number", soustrait 10, divise par 7 et renvoie les résultats. Où dans mon Django arbre j'ai mis cela? Ce n'est pas middleware, droit? Comme Felix suggère, dois-je créer un paquet python et l'importer dans le point de vue où j'ai besoin de ces fonctions?
- Vous pouvez simplement créer un normal paquet Python.
- connexes: stackoverflow.com/questions/3224902/...
Vous devez vous connecter pour publier un commentaire.
Différents question mais toujours la même réponse:
common/util/encrypt.py
(ou autre) et assurez-vous de ne pas avoir de liens internes à quoi que ce soit spécifique à un projet. il sera plus facile de les réutiliser, et aussi plus facile de port si vous avez besoin de faire bouger les choses un peu plus tard. viens aussi de l'aspirateur de données cachant point de vue. 🙂common/util/encrypt.py
, assurez-vous de toucher un videcommon/util/__init__.py
de sorte quefrom common.util.encrypt import light_encrypt
fonctionne correctementOK, après lecture de vos commentaires et de répondre ici, j'ai décidé de créer un répertoire appelé "common/util/" à l'intérieur de mon répertoire de projet. À l'intérieur, j'ai un fichier "__ init__.py" où j'ai mes petites fonctions d'assistance.
Je pense que si le fichier est trop gros, je vais ensuite répartir les fonctions individuelles .py fichiers en commun. Alors maintenant, mon projet de la structure ressemble à ceci. Merci de corriger si je fais tout de mauvais choix, je suis suffisamment tôt dans le développement, je peux le résoudre maintenant pendant qu'il est encore facile de le faire!
Ici est une autre façon de faire:
Si les fonctions de l'utilitaire peut être un module autonome
et vous êtes à l'aide d'un virtualenv de l'environnement pour votre application django
ensuite, vous pouvez regrouper les fonctionnalités comme un paquet et l'installer dans votre virtualenv.
De ce fait, il permet d'importer facilement où vous en avez besoin dans votre django app.