내 코드에 의도 없음 결과를 반환 존재하는 경우GqlQuery 항상
- 는 쿠키에서 USER_ID를 검색합니다.
- user_id를 사용하여 데이터 저장소를 쿼리하여 사용자 레코드를 검색하십시오.
- 마지막으로 레코드가 있으면 환영 메시지가 표시됩니다. (가입이 템플릿으로 전달됨)
환영 메시지를 표시 할 수없는 앱입니다. 내가 알 수있는 한 문제는 쿼리가 항상 없음을 반환한다는 것입니다. 쿠키를 확인했으며 데이터 저장소의 데이터가 존재합니다.
이 쿼리는 무엇이 잘못 되었나요? GQL은 어디에서 where의 직관적 인 방식으로 ID를 처리합니까?
#Get cookie
user_id = self.request.cookies.get("user_id", 0)
#Query Datastore for matching user_id
user = db.GqlQuery("SELECT * FROM User WHERE id = %s" % user_id).get()
#If a user is found, display the username
if user.username:
signup = "Welcome, %s" % user.username
좋아, 그래서 이전이 다소 get_by_id있어서 사용자를 사용한 작업 = User.get_by_id (INT (USER_ID))를 얻었다했지만 때 에러로 실행되고 쿠키가 존재하지 않습니다. 코드에서도이 같은 오류가 발생합니다. 이것은 user_id 쿠키가 존재하지 않을 때 사용하는 기본값 때문입니다. user_id = self.request.cookies.get ("user_id", 0). id_or_name 인수에 대해 from_path() 메서드가 0을 허용하지 않는다는 것을 알았습니다. Google App Engine 문서에서 ID는 문자열 또는 길이로 지정됩니다. 숫자 0이 될 수는 없습니다. – Hess
아, 네 말이 맞습니다. 누락 된 쿠키는 깨뜨릴 것입니다.다른 사람들이 같은 문제를 겪지 않도록 코드를 편집하겠습니다. –