在 Flask 中使用 PUT 方法更新多个 SQL 列

Update multiple SQL columns using PUT method in Flask

在 Python flask 中,如果我想更新 Postgres 数据库 table 中的数据,下面的 put 方法有效。在下面的代码中,使用 'if condition' 我正在检查和更新三列的值,即 fname、lname、address。

我的问题是,如果我想更新更多的列,例如 30 到 40 列,我应该写多个人 'if statement' 还是有任何优化的方式来更新更多的列?

class TodoId(Resource):
    def put(self,email):
        data = parser.parse_args()

    todo = Model.query.get(email)

    if 'fname' in data.keys():
        todo.fname = data.get('fname')
    if 'lname' in data.keys():
        todo.lname = data.get('lname')
    if 'address' in data.keys():
        todo.address = data.get('address')

    db.session.commit()

您可以使用“更新”方法并将数据对象传递给它。

class TodoId(Resource):
    def put(self,email):
        data = parser.parse_args()

    Model.query.get(email).update(data)
    db.session.commit()

你可以写一个通用的更新方法:

class TodoId(Resource):
    def put(self,email):
        data = parser.parse_args()

    todo = Model.query.get(email)

    for key, value in data.items():
        if hasattr(todo, key) and value is not None:
            setattr(todo, key, value)

    db.session.commit()