如何在Google App Engine中正确保存表单数据

Ani*_*ari 1 python flask

我有一个电子邮件表单,我试图将用户的电子邮件地址保存到数据库.该模型如下所示:

class EmailForm(db.Model):                                                
  email_address = db.EmailProperty
Run Code Online (Sandbox Code Playgroud)

我一直在使用一些教程像这样来自哪里表单中的数据被保存这样的指导:

title = form.title.data,
content = form.content.data
Run Code Online (Sandbox Code Playgroud)

当我遵循相同的惯例,写作

email = form.email_address.data
Run Code Online (Sandbox Code Playgroud)

EmailProperty没有数据属性时出错.

我是Google App Engine的新用户,但我没有在文档中找到答案.谢谢!

Mic*_*vis 5

您正在尝试将模型用作表单,这是两个不同的东西.

你需要另一个步骤

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()])
Run Code Online (Sandbox Code Playgroud)

现在,在您的视图中,您可以使用这样的表单.

@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()
Run Code Online (Sandbox Code Playgroud)