python - query - sqlalchemy update
¿Cómo actualizar la entrada de la fila SQLAlchemy? (3)
Supongamos que la tabla tiene tres columnas: username
, password
y no_of_logins
.
Cuando el usuario intenta iniciar sesión, se comprueba su entrada con una consulta como
user=User.query.filter_by(username=form.username.data).first()
Si la contraseña coincide, él continúa. Lo que me gustaría hacer es contar cuántas veces el usuario no_of_logins
sesión. Por lo tanto, cada vez que inicia sesión con éxito, me gustaría incrementar el campo no_of_logins
y almacenarlo de nuevo en la tabla de usuarios. No estoy seguro de cómo ejecutar la consulta de actualización con SqlAlchemy.
Con la ayuda de user=User.query.filter_by(username=form.username.data).first()
, obtendrá el usuario especificado en user
variable de user
.
Ahora puede cambiar el valor de la nueva variable de objeto como user.no_of_logins += 1
y guardar los cambios con el método de confirmación de la session
.
Hay varias formas de UPDATE
utilizando 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.no_of_logins += 1
session.commit()