我正在运行GQLQuery来查找用户是否输入了正确的凭据:
class User(db.Model):
UserName = db.TextProperty();
Password = db.TextProperty();
Ticket = db.TextProperty();
class Authentication(webapp.RequestHandler):
def post(self):
str_user = self.request.get('user')
str_password = self.request.get('password')
user = db.GqlQuery("SELECT * FROM User WHERE UserName = :1 AND Password = :2",str_user, str_password)
self.response.out.write(str_user)
self.response.out.write(str_password)
self.response.out.write(str([u.UserName for u in user]))
if user.count() > 0:
ticket = str(uuid.uuid4())
user.Ticket = ticket
self.response.out.write(ticket)
else:
self.response.out.write('Not authorized!')查询总是返回一个空的结果集(带有"WHERE"-clause),尽管我确信我已经传递了正确的参数。
我尝试连接我自己的查询字符串,但结果仍然是一样的。如果我删除“WHERE”连接,我就会得到数据库的所有用户,所以我猜数据库连接是可以的。
发布于 2011-11-07 21:50:16
这可能是因为您在字段上使用了TextProperty。TextProperty用于多行文字,不会编制索引。不能在查询中查找非索引值。对于单行文本值,应使用StringProperty。
https://stackoverflow.com/questions/8037130
复制相似问题