如何用字符串值查询NDB数据库

2024-04-24 03:24:03 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试用flask login创建一个用户登录系统,但是在查询电子邮件地址using Google's query functions时遇到了困难。你知道吗

我可以获取ID,但是由于用户在登录时不知道自己的ID,所以这不是很有用。你知道吗

代码摘录试图做什么的概述(我已经硬编码了值,目的是让概念验证工作正常):

username = 'abc@gmail.com'
check database for username
Return true if match is found

In this guide,在9'48“,用户编写(我假设是)一个sqlAlchemy查询。使用GooglesNDB查询函数的这个查询的等价物是什么?你知道吗

class User(ndb.Model):
   name = ndb.StringProperty()
   email = ndb.StringProperty()
   password = ndb.StringProperty()

@login_manager.user_loader
def load_user(user_id):
return User.get_by_id(int(user_id))

@app.route('/', methods=['GET', 'POST'])
def testlogin():

#user = User.query(getattr(User, 'email') == 'abc@gmail.com')
#login_user(user)



check = 'abc@gmail.com'
query = User.query(User.email == check)
#print query
#query = User.query()
#queryuser = User.query().filter(User.email == 'abc@gmail.com')

#login_user(queryuser)
checkTable = User.get()
#checkTable.email = check
checkTable_key = checkTable
#query = checkTable_key.get()

print str(checkTable_key)

results = User.query().fetch() #this returns a list / array

#print(results)
#print "query all" + str(queryall)

#for  result in results: 
  #print "query all" + str(result.email) 


return "logged in "

Tags: 用户comidemailcheckloginquerygmail
1条回答
网友
1楼 · 发布于 2024-04-24 03:24:03
check = 'abc@gmail.com'
query = User.query(User.email == check).get() # this returns the User object, or None if not found

if query:
    return True
else:
    return False

# or try
return (query != None)

# or, just return the User object?

# if you just want to see if the user exists, you should do a keys_only query, which is free:

query = User.query(User.email == check).fetch(1, keys_only=True)

相关问题 更多 >