簡體   English   中英

如何在Google App Engine中正確保存表單數據

[英]How to properly save form data in Google App Engine

我有一個電子郵件表單,試圖將用戶的電子郵件地址保存到數據庫中。 該模型如下所示:

class EmailForm(db.Model):                                                
  email_address = db.EmailProperty

我一直在使用像這樣的一些教程作為指南,其中表單中的數據是這樣保存的:

title = form.title.data,
content = form.content.data

當我遵循相同的約定時

email = form.email_address.data

出現錯誤,EmailProperty沒有數據屬性。

我是Google App Engine的新手,但未在文檔中找到答案。 謝謝!

您正在嘗試將模型用作表單,這是兩種不同的方式。

你還需要一步

from flaskext import wtf
from flaskext.wtf import validators

class EmailModel(db.Model):
    email_address = db.EmailProperty

class EmailForm(wtf.Form):
    email = wtf.TextField('Email Address', validators=[validators.Email()])

現在,在您看來,您可以像這樣使用表格。

@app.route('/register', methods=['POST']
def register():
    form = EmailForm()
    if form.validate_on_submit():
        # This part saves the data from the form to the model.
        email_model = EmailModel(email_address = form.email.data)
        email.put()

我想這就是您要尋找的東西: https : //developers.google.com/appengine/docs/python/datastore/typesandpropertyclasses#Email

email_address = db.EmailProperty()

email_address = db.Email(“ larry@example.com”)

  1. 您正在使用舊的db類,而是使用ndb,只需將db替換為ndb( https://docs.google.com/document/d/1AefylbadN456_Z7BZOpZEXDq8cR8LYu7QgI7bt5V0Iw/edit?ndplr=1&pli=1

  2. 使用StringProperty代替EmailProperty,所​​以..

     class UserEmail(ndb.Model): email_address = ndb.StringProperty() 
  3. 要將模型放入數據存儲區,請執行此操作

     user = UserEmail(email_address='foobar@gmail.com') user.put() 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM