【问题标题】:How to enter item into Google AppEngine Datastore?如何将项目输入 Google AppEngine 数据存储区?
【发布时间】:2023-03-25 06:30:01
【问题描述】:

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

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

(我收到错误:BadArgumentError: Unused positional arguments [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)

【问题讨论】:

    标签: python google-app-engine gql


    【解决方案1】:

    将参数绑定到查询时不需要使用引号:

    query = db.GqlQuery("SELECT * FROM EmailDatabase WHERE emailaddress = :1", self.request.get('emailaddress'))
    

    否则,它会将其读取为字符串,实际上只返回以:1 作为其电子邮件地址值的对象。

    此外,请确保在将用户输入 (self.request.get('emailaddress')) 插入查询之前对其进行验证。

    【讨论】:

      猜你喜欢
      • 2010-11-12
      • 2015-04-16
      • 1970-01-01
      • 2011-10-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多