Gau*_*ani 5 python mysql sqlalchemy python-3.x
我在 Python 代码库中使用 SQLAlchemy 作为 ORM,以便能够与 MySQL 数据库连接。我希望能够根据同一行其他列中的值自动计算并在列中插入一个值。
这就是我的班级的样子:
class SentNotification(Base):
__tablename__ = 'sent_notification'
campaign = Column(VARCHAR(34), nullable=False)
alert_type = Column(VARCHAR(34), nullable=False)
identifier = Column(VARCHAR(34), nullable=False)
message_params = Column(JSON, nullable=True)
send_time = Column(Integer, nullable=False)
nonce = Column(VARCHAR(32), nullable=False, primary_key=True)
Run Code Online (Sandbox Code Playgroud)
该nonce列应该是campaign、alert_type和(json 转储) 的 md5 哈希(identifier或任何其他自定义函数) message_params。
显然,我可以单独计算它并使用 进行调用SentNotification,nonce但如果我只能传递前 5 个值,并且我的类将自动处理 的计算和插入,那么它会更干净nonce。
注意:我不想使用混合属性,因为它会计算值,并且我想实际将其保留nonce在数据库中。
小智 0
这是关于上下文相关的默认函数。你可以将它用作:
def mydefault(context):
params = context.get_current_parameters()
return hash(params['campaign'],params['alert_type'],params['identifier'], params['message_params'])
class SentNotification(Base):
__tablename__ = 'sent_notification'
campaign = Column(VARCHAR(34), nullable=False)
alert_type = Column(VARCHAR(34), nullable=False)
identifier = Column(VARCHAR(34), nullable=False)
message_params = Column(JSON, nullable=True)
send_time = Column(Integer, nullable=False)
nonce = Column(VARCHAR(32), nullable=False, primary_key=True, default=mydefault)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2105 次 |
| 最近记录: |