如何将项目写入Google AppEngine Datastore?
我想检查一个邮箱是否在我的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)
1 个回答
6
在把参数绑定到查询的时候,你不需要加引号:
query = db.GqlQuery("SELECT * FROM EmailDatabase WHERE emailaddress = :1", self.request.get('emailaddress'))
否则系统会把它当成字符串,只会返回那些邮箱地址值为 :1
的对象。
另外,确保在把用户输入的内容(self.request.get('emailaddress')
)放进查询之前,先进行验证。