Python query.filter和gql
我正在尝试这个函数,但是有点不对劲。我存储了名称“John”,但当我将John传递给Python query.filter和gql,python,google-app-engine,google-cloud-datastore,gql,Python,Google App Engine,Google Cloud Datastore,Gql,我正在尝试这个函数,但是有点不对劲。我存储了名称“John”,但当我将John传递给用户名并调用检查用户时,输出总是返回结果,即使名称未存储在google数据存储中。为什么? def check_user(self, username_): query = db.Query(Registrations) results = query.filter('username =', username_) if results: return results u
用户名
并调用检查用户
时,输出总是返回结果
,即使名称未存储在google数据存储中。为什么?
def check_user(self, username_):
query = db.Query(Registrations)
results = query.filter('username =', username_)
if results:
return results
user_username = self.request.get('username')
check_username_valid = self.check_user(user_username)
if not check_username_valid:
error_username_exists="Username already exists"
在GQL的情况下,我如何将变量username\uuu
传递到查询中?比如:
qr = db.GqlQuery("Select * from Registrations Where username = ?????")
results是查询对象而不是结果,您需要调用
query.filter('username=',username.'.get()
来返回单个结果,或者调用query.filter('username=',username.').fetch()
来返回所有结果。谢谢,为了学习,如何将变量传递到查询中?这可能会导致某种类型的注入?我认为这只是一个简单的字符串构建,在ndb中它会变得更加有趣。不!不要使用字符串连接插入参数!使用GQL文档中记录的参数替换(“:1“,“:2”等)。@循环我不理解您的问题,我以为您问的是如何在代码内部将变量传递到查询中。不要使用字符串构建来构建GQL,因为它与SQL一样对注入敏感。