200

テーブルに 、 、 の 3 つの列がusernameあるpasswordとしno_of_loginsます。

ユーザーがログインしようとすると、次のようなクエリを含むエントリがチェックされます

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

パスワードが一致する場合、彼はさらに先に進みます。私がやりたいことは、ユーザーがログインした回数を数えることです。したがって、彼がログインに成功するたびに、no_of_loginsフィールドをインクリメントしてユーザーテーブルに保存したいと思います。SqlAlchemy で更新クエリを実行する方法がわかりません。

4

5 に答える 5

438

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()
于 2014-11-13T23:02:43.227 に答える
180
user.no_of_logins += 1
session.commit()
于 2012-03-12T12:49:05.723 に答える
6

user=User.query.filter_by(username=form.username.data).first()ステートメントの助けを借りて、user変数で指定されたユーザーを取得します。

これで、のような新しいオブジェクト変数の値を変更し、のcommitメソッドuser.no_of_logins += 1を使用して変更を保存できます。session

于 2012-03-12T12:59:04.230 に答える