在 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()
在 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()