【问题标题】:BadValueError thrown when entering Integer in html form以 html 形式输入 Integer 时抛出 BadValueError
【发布时间】:2014-04-06 22:41:45
【问题描述】:

我正在使用 Python 创建一个 Google App Engine 应用程序。为了测试我的应用程序,我使用 html 表单来输入数据。 在我的表格中,我有一行:

<tr><td>Age</td><td><input type="number" size="10" name="age"/></td></tr>

在我的模型类中,一个属性定义如下:

class Person(ndb.Model):
...
age = ndb.IntegerProperty()

当我在本地测试我的应用程序时,它会显示表单,但在输入年龄值时,我会收到 BadValueError: Expected integer, got u '23' 消息。发布图像,因为我不知道如何复制命令提示符文本。我希望它足够清楚。

编辑:这是从 html 表单传递数据的方式。

  # Data taken from the registration form (above) is used to 
  # create a new member.
 class PersonHandler(webapp2.RequestHandler):

 def post(self):
    # need to check this member-name does not exist
    name = self.request.get('name')
    callback = self.request.get('callback')
    member = Member.get_by_id(name)
    if member:           # This member name already exists.
        self.error(409)  # This is the HTTP status code for 'unable to process due to conflict'
    else:
        ...
        a = self.request.get("age")

        member = Member(age=a,...)
        member.put()
        if callback:
            self.response.write(callback + '(' + member.toJSON + ')')
        else:
            self.response.write(member.toJSON())

谁能告诉我做错了什么?

【问题讨论】:

    标签: python html google-app-engine


    【解决方案1】:

    您只需要将检索到的值转换为整数:

        ...
        else:
            ...
            a = int(self.request.get("age"))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-05-27
      • 1970-01-01
      • 2020-10-20
      • 2018-09-22
      • 2011-04-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多