Как обновить запись строки SQLAlchemy?



предположим, что таблица имеет три столбца:username,password и no_of_logins.



когда пользователь пытается войти в систему, он проверяется для записи с запросом, как



user=User.query.filter_by(username=form.username.data).first()


если пароль совпадает, он продолжается дальше. То, что я хотел бы сделать, это подсчитать, сколько раз пользователь вошел в систему. Таким образом, всякий раз, когда он успешно входит в систему, я хотел бы увеличить no_of_logins поле и сохранить его обратно в таблицу пользователя. Я не уверен, как запустить запрос на обновление с помощью SqlAlchemy.

927   3  

3 ответов:

user.no_of_logins += 1
session.commit()

есть несколько способов UPDATE С помощью sqlalchemy

1) user.no_of_logins += 1
   session.commit()

2) session.query().\
       filter(User.username == form.username.data).\
       update({"no_of_logins": (User.no_of_logins +1)})
   session.commit()

3) conn = engine.connect()
   stmt = User.update().\
       values(no_of_logins=(User.no_of_logins + 1)).\
       where(User.username == form.username.data)
   conn.execute(stmt)

4) setattr(user, 'no_of_logins', user.no_of_logins+1)
   session.commit()

С помощью user=User.query.filter_by(username=form.username.data).first() заявление вы получите на указанный пользователем в user переменной.

теперь вы можете изменить значение новой переменной объекта, например user.no_of_logins += 1 и сохраните изменения с помощью session'ы метод commit.

Comments

    Ничего не найдено.