我正在做一个简单的对象编组事情,它在一个简单的 RESTful API 和一个 peewee 管理的数据存储之间进行。但是,这种模式不断出现(form
作为 的输出cgi.FieldStorage()
):
if form.getfirst('From'): msg.msg_from=form.getfirst('From')
if form.getfirst('To'): msg.msg_to=form.getfirst('To')
if form.getfirst('Body'): msg.msg_body=form.getfirst('Body')
当然,这是笨拙且难以维护的。我更愿意做的是这样的事情:
keyMapping = { 'From': 'msg_from',
'To': 'msg_to',
'Body': 'msg_body' }
for k, v in keyMapping:
if form.getfirst(k): msg.SET_FIELD_VALUE(v, form.getfirst(k))
显然这是我找不到的 SET_FIELD_VALUE 。我知道如何使用它,eval
但显然我宁愿避免这种情况,而且我意识到实际模式实际上可能涉及某种形式的字段引用或反射 API 等,但我无法找到任何关于一个人会怎么做。