Ton*_*ony 4 python mysql django django-models
有没有办法强制Django模型在每次读取或加载模型数据时将字段传递给MySQL函数?为了澄清我在SQL中的含义,我希望Django模型能够产生如下内容:
在模型加载时:SELECT AES_DECRYPT(fieldname,password)FROM tablename
在模型保存上:INSERT INTO tablename VALUES(AES_ENCRYPT(userinput,password))
您可以在模型上创建属性,而不是模型加载,当访问属性时,它可以读取数据库:
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)
Run Code Online (Sandbox Code Playgroud)
现在加载后,您可以参考mything.foobar,第一次访问将从数据库中检索解密,保留它以供以后访问.
这也有一个好处,如果你的一些代码没有用于解密,它就不会发生.
| 归档时间: |
|
| 查看次数: |
3011 次 |
| 最近记录: |