私のFlaskウェブアプリケーションでは、私はログインシステムを持っています。ユーザーがログオンすると、データベースのテーブルに、ユーザーが最後のログインを行った日時を更新します。 私はこのコードを使用しています:フラスコ更新クエリ
@app.route('/login', methods=['POST'])
def do_admin_login():
POST_CODICE_FISCALE = str(request.form['codice_fiscale'])
POST_PASSWORD = str(request.form['password'])
pwd_enc=base64.b64encode(POST_PASSWORD)
Session = sessionmaker(bind=engine)
s = Session()
query = s.query(User).filter(User.codice_fiscale.in_([POST_CODICE_FISCALE]), User.password.in_([pwd_enc]))
result = query.first()
if result:
session['logged_in'] = True
query = s.query(User).filter(User.codice_fiscale.in_([POST_CODICE_FISCALE]).update(User.data_ora_ultimo_accesso=datetime.now()))
query.first()
db.session.commit()
else:
flash('wrong password!')
return home()
を私はエラーが表示されます。
query = s.query(User).filter(User.codice_fiscale.in_([POST_CODICE_FISCALE]).update(User.
data_ora_ultimo_accesso=datetime.now()))
SyntaxError: keyword can't be an expression
それは間違っているでしょうか?ありがとう。
ありがとうございました。それはエラーなしで動作しますが、データベースにあるようです。data_ora_ultimo_accessoは更新ではありません。 –
セッション処理を修正しましたか?別のセッションを作成せず、一貫して 'db.session'を使用してください。 Btwを使用すると、ORMを使用して更新を実行することもできます: 'result.codice_fiscale = datetime.now()'そして次にコミットします。 –
同じセッションを使用しますか?Session = sessionmaker(bind = engine) s = Session()db.sessionは一貫してどのように使用できますか? –