如果我执行以下代码:
def post(self):
name = self.request.get('username')
password = self.request.get('password')
user_is = users.all().filter('name =', name).get()
params = dict()
if user_is:
hashword = user_is.password
if check_password(username, password, hashword):
key = db.Key.from_path('users', str(user_is.key().id()))
c = db.get(key)
secret_cookie = make_cookie_secret(c)
self.response.headers.add_header('Set-Cookie', "user_id=%s; Path=/" % secret_cookie)
self.redirect('/blog/userwelcomepage')
else:
params['passworderror'] = "Invalid username/password"
self.render("pagelogin.html", **params)
else:
params['usernameerror'] = "No such user"
self.render("pagelogin.html", **params)
数据存储区永远无法在过滤器查询中找到任何内容。我已经创建了两个特殊页面,以确保我正在寻找的数据确实存在,一个迭代u=db.GqlQuery(SELECT * FROM users)
我将你传递给一个迭代的jinja模板
{% for i in u %}i.username<br>i.password<br>i.email{% endfor %}
我看到了预期的用户名。
然后我创建了一个jinja模板:
users.all()
然后我迭代:
{% for i in users %}{% if i.username == "Joe"%}Yay{% else %}nope{% endif %}{% endfor %}
我正在寻找的用户名Joe生成一个&#34; Yay&#34;。
为什么jinja能够正确匹配,但Gql不能?无论我做什么搜索,过滤是否通过&#34; where&#34;或者.filter返回无
按键搜索很好,按预期工作。
答案 0 :(得分:0)
你试过这个吗?
user_is = users.all().filter('username =', name).get()