을 반환하지 I가 다음 코드를파이썬 MySQL은 필드를 업데이트하거나 오류
def post(self):
data = UserActivation.parser.parse_args()
check = UserConfirm.check_token(data['email'],data['token'])
activate_user = UserConfirm.activate_user(data['email'])
if check == False:
return {"message": "Invalid Token or Email Address"}, 400
else:
if activate_user:
return {"message": "Your account is now active"}, 201
else:
return {"message": "Error Activating Account"}, 500
사용자 모델에서 UserConfirm
클래스로 전달되는 :
def activate_user(email):
query_users = "UPDATE users SET activated=1 WHERE email=%s"
cursor.execute(query_users, (email,))
코드하지 않는 몇 가지 이유 실패하거나 데이터베이스를 업데이트하지 않습니다. 무슨 일이 있었는지보고 바로 다음과 같이 좀 오류 처리에 넣어하려고 :
try:
email = data['email']
query_users = "UPDATE users SET activated=1 WHERE email=%s"
cursor.execute(query_users, (email,))
return {"message": "done"}, 201
conn.commit()
except MySQLdb.Error as e:
error=e.args[0], e.args[1]
return {"message": error}, 500
을 나는 끝 지점에 값을 전송하고 제대로 작동하는지 알고 우체부를 사용하고있어 check_token()
기능 작동하기 때문에 잘 됐네. 이상한 점은 쿼리가 오류를 throw하지 않고 DB를 업데이트하지 않는다는 것입니다. PhpMyAdmin에서 위와 같이 문제없이 SQL 쿼리를 작성할 수 있습니다.
또한 의도적으로 잘못된 값을 입력해도 오류없이 반환됩니다.
편집 나는 솔루션 그것은 야생 추측 conn.close()
트랜잭션이 커밋되지 않았습니까? cursor_execute 다음에 database_connection.commit()을 추가하여 문제가 없는지 알아보십시오. 그것은 해결책이 아니며 단지 진단입니다. –
은 아무 것도 변경하지 않습니다. 아주 이상한 오류. 삽입이나 검색어 선택과 관련하여이 문제가 없습니다. – Fahad