Flask 动态地将行插入到表中

Flask 动态地将行插入到表中,flask,sqlalchemy,setattr,Flask,Sqlalchemy,Setattr,我想在SQLAlchemy中动态地向sql表插入新行 我基本上想这样做,但是我不想用更新来做,我想用插入来做 我用的是烧瓶和表格 现在,我必须添加一个新用户来执行以下操作: if form.validate_on_submit(): contact_info = UserContactInfo(street_number=form.street_number.data, street_address = form.st

我想在SQLAlchemy中动态地向sql表插入新行

我基本上想这样做,但是我不想用更新来做,我想用插入来做

我用的是烧瓶和表格

现在,我必须添加一个新用户来执行以下操作:

if form.validate_on_submit():
    contact_info = UserContactInfo(street_number=form.street_number.data,
                                   street_address = form.street_address.data,
                                   unit_number = form.unit_number.data
                                  )
    db.session.add(contact_info)
    db.session.commit()
如果我可以迭代插入,我将能够更轻松地向UserContactInfo添加新属性

我尝试过这样做,但没有对数据库进行任何更改

form = ContactInfoForm()
contact_info = UserContactInfo()

if form.validate_on_submit():
    table_obj_members = get_attributes(UserContactInfo())
        for aa in table_obj_members:
             form_data = getattr(form, aa).data
             setattr(contact_info, aa, form_data)

 db.session.commit()
我已经看到了一些关于这方面的讨论,并实例化了整个类而不是对象属性,但我似乎无法将其应用于这个问题


感谢您的帮助。

在第二个示例中,您在提交之前忘记将修改过的对象添加到会话中。
WTForms中有一个函数与您描述的完全相同:
populate_obj()
[]

例如:

if form.validate_on_submit():
    contact_info = UserContactInfo()
    form.populate_obj(contact_info)

    db.session.add(contact_info)
    db.session.commit()

谢谢这是一个方便的功能。注意:在填充之前,我必须向数据库对象添加外键和值<代码>联系人信息=用户联系人信息(id=用户id)