在表中插入数据结构必须是什么样的

时间:2017-04-18 11:58:35

标签: python web2py

我在my_model.py

中有类似的内容
table_fields = [
    'my_name-string',
    'my_id-integer',
    ]

我的目标是根据这些信息创建一个表,所以我尝试了:

fields_and_types_dict ={}  
for tf in table_fields:
        fields_and_types = tf.split('-')
        fields_and_types_dict['%s' % fields_and_types[0]] = {}
        fields_and_types_dict['%s' % fields_and_types[0]]['type'] = '%s' % fields_and_types[1]

db.define_table('my_table', fields_and_types_dict)

它无法正常工作,我想我没有正确的数据结构。 任何人都可以提供一个暗示它的样子吗?提前谢谢。

解决方案:

最优雅的解决方案是:

db.define_table('my_table', *[Field(*tf.split('-')) for tf in table_fields])

正如安东尼所说。

我使用的不那么复杂的解决方案是:

tableDef = ['my_table']
for tf in table_fields:
    name, type = tf.split("-")
    tableDef.append(Field(name, type))
db.define_table(*tableDef)

按照Vanojx1的建议。

1 个答案:

答案 0 :(得分:1)

根据DOC,试试这个:

tableDef = ['my_table']
for tf in table_fields:
    name, type = tf.split("-")
    tableDef.append(Field(name, type))
db.define_table(*tableDef)