在flask restul的PUT方法中是否有部分字段需要更新?你知道吗
目前我的PUT方法执行这个,但是如果它不存在的字段将抛出错误。你知道吗
item = ItemModel.find_by_id(id)
item_json = request.get_json()
if(item):
item.name = item_json['name']
item.code = item_json['code']
item.tags = item_json['tags']
else:
try:
item = item_schema.load(
item_json
)
except ValidationError as err:
return err.messages, HTTPStatus.BAD_REQUEST
item.save_to_db()
return {'message': item_schema.dump(item)}, HTTPStatus.OK
我找到了一个办法,但不确定这是不是最好的办法。 因此,我们在模型上创建新的函数来更新和传递JSON对象,并使用该对象设置属性。你知道吗
现在在resource中,我们使用来自请求的输入JSON调用update函数。你知道吗
这是可行的,但仍然不确定是否有任何最好的方法来做到这一点。你知道吗
我是这样做的:
使用POST方法创建新项,使用PUT方法更新项。
当收到请求时,首先使用棉花糖来验证数据。你可以用webargs来做这个。它由棉花糖开发团队维护。它抛出相应的HTTP错误(如果请求格式不正确,则为400;如果是正确的json,但验证失败,则为422)。
认沽期权没有普遍的规则。从资源的角度来看,放置在一个项目上意味着替换整个项目(而不是补丁)。这并不意味着它要替换数据库中的整个项,因为可能存在用户无法修改的字段(ID、created\u at、updated\u at或其他一些可能在另一个资源中公开的字段,这取决于具体情况)。你答案中的
update_to_db
方法看起来不错。注意:在写入数据库时,您仍然必须捕获潜在的错误(数据库连接错误、找不到项、完整性错误(无效外键),…),但至少验证会尽快进行。你知道吗
相关问题 更多 >
编程相关推荐