如何进入项目到谷歌的AppEngine数据存储?
-
23-09-2019 - |
题
我要检查电子邮件是否在我的AppEngine数据库,如果没有:然后将其输入到数据存储。
我是新来的蟒蛇。 为什么不工作这个简单的代码?(另外如果写这个更好的方式/更有效的方式,请告诉我)
(I得到错误:BadArgumentError:不使用位置参数[1])
class EmailAdd(webapp.RequestHandler):
def get(self):
query = db.GqlQuery("SELECT * FROM EmailDatabase WHERE emailaddress=':1'", self.request.get('emailaddress'))
result = query.get()
if result is None:
newemail = EmailDatabase()
newemail.emailaddress = self.request.get('emailaddress')
newemail.put()
和作为参考,这是我的分贝类:
class EmailDatabase(db.Model):
emailaddress = db.StringProperty()
date = db.DateTimeProperty(auto_now_add=True)
解决方案
您不绑定的参数查询时需要使用引号:
query = db.GqlQuery("SELECT * FROM EmailDatabase WHERE emailaddress = :1", self.request.get('emailaddress'))
否则它会读取它作为一个字符串,实际上只返回有:1
作为其EMAILADDRESS值对象。
此外,确保你将其插入查询之前验证用户的输入(self.request.get('emailaddress')
)。
不隶属于 StackOverflow