質問

に付いているかどうか確かめたい場合はメールでのデータベースにAppengine、ない場合は:入力してください、datastore.

これまでエラーになります。なぜ、このような単純なコードをなす。 ものがあればより良い方法/効率的な方法を書くことを教えてください)

(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()

および参考に、これは私の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'))

それ以外の場合は、文字列としてそれを読み、実際にはそのEMAILADDRESS値として:1を持つオブジェクトを返します。

また、クエリに挿入する前に、ユーザー入力(self.request.get('emailaddress'))を検証していることを確認します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top