Mysql
 sql >> Base de données >  >> RDS >> Mysql

Les modèles Django peuvent-ils utiliser les fonctions MySQL ?

Au lieu de charger le modèle, vous pouvez créer une propriété sur votre modèle, et lorsque la propriété est accessible, elle peut lire la base de données :

def _get_foobar(self):
    if not hasattr(self, '_foobar'):

        cursor = connection.cursor()
        self._foobar = cursor.execute('SELECT AES_DECRYPT(fieldname, password) FROM tablename')[0]
    return self._foobar
foobar = property(_get_foobar)

Maintenant, après le chargement, vous pouvez vous référer à mything.foobar , et le premier accès récupérera le déchiffrement de la base de données, en le conservant pour les accès ultérieurs.

Cela a également l'avantage que si une partie de votre code n'a aucune utilité pour le décryptage, cela ne se produira pas.