我定义了以下SQLAlchemy类:
Base = sqlalchemy.ext.declarative.declarative_base()
class NSASecrets(Base):
__tablename__ = 'nsasecrets';
id = sqlalchemy.Column(sqlalchemy.Integer, primary_key=True);
text = sqlalchemy.Column(sqlalchemy.String);
author = sqlalchemy.Column(sqlalchemy.String);
现在我想做的是根据一些逻辑来屏蔽“作者”字段,比如:
^{pr2}$因此,根据这个“mask”参数,我希望输出是“John Smith”,在False case-output not masked,或“J*****h”,当输出被屏蔽时。显然,我可以用这种打印方式来完成,但问题是打印文件分散在代码中,我认为以集中控制的方式来实现这一点的唯一方法是用已经屏蔽的值创建SQLAlchemy对象。那么有没有什么众所周知的解决办法呢?或者我应该创建自己的会话管理器来重载“查询”接口,还是缺少一些其他可能的解决方案?在
谢谢
这通常是Python中使用descriptors进行的操作。将描述符与SQLAlchemy映射列相结合的一个简单方法是使用synonym,尽管同义词在这一点上有点过时,有利于使用一个称为hybrids的不那么“神奇”的系统。以下是混合动力车的一个例子:
请注意,这与查询没有太大关系。当数据到达行集中时格式化数据的想法是另一种方法,而且也有一些方法可以实现这一点,尽管如果您只关心引用“text”和“author”的print语句,那么将其保留为python访问模式可能更方便。在
相关问题 更多 >
编程相关推荐