【问题标题】:"Lost data" while processing data in WTForm在 WTForm 中处理数据时“丢失数据”
【发布时间】:2015-09-11 04:59:14
【问题描述】:

我从客户端发送 HTTP 请求。然后在服务器上我尝试验证一个 WTForm 表单。

from webob.multidict import MultiDict

from wtforms import Form, TextField, PasswordField, validators

class LoginForm(Form):
    email = TextField('Email', [validators.Required(), validators.Email()])
    password = PasswordField('Password', [validators.Required()])

以下命令在 RequestHandler 中执行:

self.request.body
>>> '{"username":"my_email@me.com", "password":"pass"}'

json.loads(self.request.body)
>>>  {"username":"my_email@me.com", "password":"pass"}

type(json.loads(self.request.body))

>>> type 'dict'

MultiDict(json.loads(self.request.body))

>>> MultiDict[(u'username', u'my_email@me.com'), (u'password':'******')])

LoginForm(MultiDict(json.loads(self.request.body))).data

>>> {'password': 'pass', 'email': u''}

我希望从最后一个命令中看到{"username":"my_email@me.com", "password":"pass"},稍后我可以对其进行验证。但是,不知何故,实际数据“丢失”了。有什么想法吗?

【问题讨论】:

  • 当您发布MultiDict 的结果时,您显示的(u'password':'******') 不是一个有效的元组,您确定这是输出吗?

标签: python webapp2 wtforms webob


【解决方案1】:

您的登录表单包含名为 emailpassword 的字段,但您将字段 usernamepassword 传递给它。

改变一个或另一个以匹配,你应该很高兴。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-05-31
    • 2021-04-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-10
    相关资源
    最近更新 更多