2010-01-28 61 views
3

我想檢查一個電子郵件是否在我的Appengine數據庫中,如果沒有:然後將其輸入到數據存儲。如何將項目輸入到Google AppEngine Datastore?

我是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) 

回答

6

結合的一個參數查詢時,您不需要使用引號:

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

否則它將以字符串形式讀取它,實際上只返回具有:1作爲其電子郵件地址值的對象。

另外,請確保在將用戶輸入插入查詢之前驗證用戶輸入(self.request.get('emailaddress'))。

+0

謝謝你,tomlog。謝謝。你是一名專家級的python/gae程序員... – chris 2010-01-28 11:46:32

相關問題