테이블에 username
, password
및 no_of_logins
의 세 열이 있다고 가정합니다. 암호 일치, 그는 더 진행하면 SQLAlchemy 행 항목을 업데이트하는 방법은 무엇입니까?
사용자가 로그인을 시도
, 그것은user=User.query.filter_by(username=form.username.data).first()
같은 쿼리 항목을 검사합니다. 내가 무엇을하고 싶은지는 사용자가 로그인 한 횟수를 세는 것입니다. 따라서 그가 성공적으로 로그인 할 때마다 no_of_logins
필드를 증가시키고이를 사용자 테이블에 다시 저장하고 싶습니다. SqlAlchemy로 업데이트 쿼리를 실행하는 방법을 모르겠습니다. 당신이 user
변수에 지정된 사용자를 얻을 것이다 user=User.query.filter_by(username=form.username.data).first()
문의 도움으로
http://stackoverflow.com/a/2334917/125507이 그것을 할 나쁜 방법이다라고 사용
UPDATE
하는 방법은 여러 가지가 있습니다. 행이 아직 존재하지 않는다면 어떻게 될까요? – endolithendolith의 링크마다 'user.no_of_logins + = 1'은 경쟁 조건을 생성 할 수 있습니다. 대신'user.no_of_logins = user.no_of_logins + 1'을 사용하십시오. sql로 변환하면 후자의 올바른 방법이됩니다 :'SET no_of_logins = no_of_logins + 1'. – ChaimG
@ChaimG'user.no_of_logins = User.no_of_logins + 1'을 의미하거나 다른 말로 모델의 인스트루먼트 된 속성을 사용하여 SQL 표현식을 생성합니다. 그것은 귀하의 의견대로 동일한 경쟁 조건을 생산하는 두 가지 방법을 표시합니다. –