使用 Bottlepy 从 HTML 表单中获取 INT 值

Posted

技术标签:

【中文标题】使用 Bottlepy 从 HTML 表单中获取 INT 值【英文标题】:getting INT value from HTML form with bottlepy 【发布时间】:2012-10-21 11:22:21 【问题描述】:

我有一段非常简单的代码,我试图添加 2 个数字。我对python非常缺乏经验,所以我遇到了一些麻烦。我正在使用python的瓶子框架。

from bottle import get, post, request, run, validate
@get('/login') # or @route('/login')
def login_form():
    return '''<form method="POST" action="/login">
<input name="number" type="number" />
<input type="submit" />
</form>'''
@post('/login') # or @route('/login', method='POST')
def login_submit():
    name = request.forms.get('number')
    intnumber = int(number)
    return(intnumber + intnumber)

我遇到的问题是从文本框返回的值是字符串类型。所以我可以很好地连接这两个字符串,但不能将它们转换为 int 来添加它们。它给了我错误

TypeError("'int' object is not iterable",)

当它尝试转换 intnumber = int(number).

任何有关如何解决此问题以及为什么会发生这种情况的帮助将不胜感激。

【问题讨论】:

【参考方案1】:
from bottle import get, post, request, run, validate

#bottle.debug(True)

@get('/login') # or @route('/login')
def login_form():
    return '''<form method="POST" action="/login">
<input name="number" type="number" />
<input type="submit" />
</form>'''

@post('/login') # or @route('/login', method='POST')
def login_submit():
    number = request.forms.get('number')
    intnumber = int(number)
    return str(intnumber + intnumber)

run(host='localhost', port=8080)

【讨论】:

更好:number = request.forms.get('number', type=int) 然后(如你所说)return str(number + number)

以上是关于使用 Bottlepy 从 HTML 表单中获取 INT 值的主要内容,如果未能解决你的问题,请参考以下文章