带有变量表和字段名的web2py insert,例如带有di

2024-05-17 01:26:39 发布

您现在位置:Python中文网/ 问答频道 /正文

有没有办法在运行时处理表名和字段名?你知道吗

我找到了对以dict为参数的insert方法的引用 但是假设rd是一个包含10个条目的dict,key=name of the field,value=value to be insert,下面的代码将失败

    db.OrdersFull.insert(rd)

With error:TypeError:insert()只接受1个参数(给定2个)
1) 有什么线索吗?
2) 在这个解决方案中,表名(OrdersFull)在开发时仍然必须是已知的,有没有办法插入到只在运行时才知道名称的表中?
3) 有没有一个地方可以找到可用web2pyapi调用的参考信息?你知道吗


Tags: ofthe方法keyname目的参数value
1条回答
网友
1楼 · 发布于 2024-05-17 01:26:39

要访问基于生成其名称的Python表达式的表,可以执行以下操作:

tablename = 'mytable'
db[tablename]

这是有据可查的here。你知道吗

要将字典与.insert()方法一起使用,可以使用标准Python关键字参数解包:

db[tablename].insert(**mydict)

这并不特定于web2py或DAL,而是标准的Python语法。你知道吗

还有一种特殊方法可用于从字典中筛选出表中不属于字段的任何项:

db.mytable.insert(**db.mytable._filter_fields(mydict))

如果要传入以前从表中选择的记录,则上面的命令很有用,因为它将自动从记录中过滤出id字段(您不希望在插入时指定id,因为数据库将自动创建一个)。你知道吗

关于API引用,除了book,还有this API documentation。你知道吗

相关问题 更多 >