Является ли плохой практикой перебирать объект Flask SQLAlchemy с помощью __dict__? - PullRequest
0 голосов
/ 18 апреля 2019

Чтобы построить динамический маршрут обновления пользователя на 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, но я думаю, что в конце он похож на подход, который яиспользуя ...

Объекты: реализованный маршрут может обновлять определенные атрибуты от пользователя или всех из них, используя тот же маршрут

1 Ответ

0 голосов
/ 19 апреля 2019

Я бы порекомендовал заглянуть в зефир-sqlalchemy , чтобы справиться с подобными вещами. Я обнаружил, что существует очень мало вариантов использования, в которых есть проблема, и __dict__ является лучшим решением.

Вот пример приложения, использующего его: Как создать вложенный JSON из запроса к базе данных с помощью объединений? Использование Python / SQLAlchemy

...