Чтобы построить динамический маршрут обновления пользователя на Flask, я перебираю пользовательский объект Flask SQLAlchemy, используя dunder __dict__
:
parameters = ['name'] # Valid parameters after the Regex filter was applied
for parameter in parameters:
user.__dict__[parameter] = request.form.get(parameter)
Я сделал это, чтобы избежать использования ifs
,Чтобы гарантировать, что в parameters
присутствуют только действительные параметры, я применил шаблон Regex, который фильтрует действительные параметры, полученные в request
для маршрута пользователя, и задокументировал этот аспект в строке документа.
Я спрашиваю, является ли итерация объекта SQLAlchemy Flask с использованием __dict__
плохой практикой, потому что, если я печатаю user.__dict__
, я получаю все параметры, даже те, которые не включены в фильтр Regex, ig, парольдата создания и т. д .;и никогда не должен обновляться этим маршрутом.
Я нашел другой подход , который использует get все столбцы в SQLAlchemy, но я думаю, что в конце он похож на подход, который яиспользуя ...
Объекты: реализованный маршрут может обновлять определенные атрибуты от пользователя или всех из них, используя тот же маршрут