其他分享
首页 > 其他分享> > 如何在Google AppEngine数据存储中输入项目?

如何在Google AppEngine数据存储中输入项目?

作者:互联网

我想检查一下电子邮件是否在Appengine的数据库中,如果没有:然后将其输入数据存储区.

我是python的新手.
为什么这个简单的代码不起作用? (如果有更好的方式/更有效的方式来写这个,请告诉我)

(我得到错误: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()

作为参考,这是我的db类:

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’)).

标签:gql,python,google-app-engine
来源: https://codeday.me/bug/20190827/1741763.html