为了在 Flask 上构建动态用户更新路由,我使用 dunder __dict__
遍历用户 Flask SQLAlchemy 对象:
parameters = ['name'] # Valid parameters after the Regex filter was applied
for parameter in parameters:
user.__dict__[parameter] = request.form.get(parameter)
我这样做是为了避免使用ifs
。为了确保parameters
中仅存在有效参数,我应用了一个正则表达式模式来过滤用户路由request
中收到的有效参数,并且我已经在文档字符串上记录了这一方面。
我问使用__dict__
迭代 Flask SQLAlchemy 对象是否是一种不好的做法,因为如果我打印user.__dict__
,我会收到所有参数,甚至是那些不在正则表达式过滤器上的参数,例如密码、创建日期等; 并且永远不应该通过此路由更新。
我找到了另一种使用 SQLAlchemy 中获取所有列的方法,但我认为最后它类似于我正在使用的方法......
Obs:实现的路由可以使用相同的路由更新用户的特定属性或所有用户的特定属性
我建议研究棉花糖-sqllchemy来管理这种事情。我发现很少有用例出现问题,__dict__
是最好的解决方案。
下面是使用它的示例应用程序:如何从带有联接的数据库查询生成嵌套 JSON?使用 Python/SQLAlchemy