Mysql
 sql >> Database >  >> RDS >> Mysql

I modelli Django possono utilizzare le funzioni MySQL?

Invece di caricare il modello, puoi creare una proprietà sul tuo modello e, quando si accede alla proprietà, può leggere il database:

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)

Ora, dopo il caricamento, puoi fare riferimento a mything.foobar e il primo accesso recupererà la decrittazione dal database, trattenendola per accessi successivi.

Questo ha anche il vantaggio che se parte del tuo codice non è utilizzabile per la decrittazione, ciò non accadrà.