كيفية إدخال العنصر في مخزن بيانات Google AppEngine؟
-
23-09-2019 - |
سؤال
أرغب في التحقق مما إذا كان البريد الإلكتروني موجودًا في قاعدة البيانات الخاصة بي في AppEngine ، وإذا لم يكن الأمر كذلك: أدخله في مخزن البيانات.
أنا جديد على بيثون.لماذا هذا الرمز البسيط لا يعمل؟ (أيضًا إذا كانت هناك طريقة أفضل/طريقة أكثر كفاءة لكتابة هذا ، من فضلك قل لي)
(أحصل على الخطأ: 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
كقيمة البريد الإلكتروني الخاصة بهم.
أيضًا ، تأكد من التحقق من صحة إدخال المستخدم (self.request.get('emailaddress')
) قبل إدخاله في الاستعلام.
لا تنتمي إلى StackOverflow