我正在阅读[链接] http://flask.pocoo.org/docs/quickstart/#the-request-object [链接]
如果我有一个html,其中包含一个元素为:
的表单<input type="text" id = 2 name="box"></input>
我正在使用Flask app在GET请求中获取此数据。从文档中我知道我可以使用
searchword = request.args.get('box', '')
我想知道searchwork的数据类型是什么,它是一个对象。如果它是一个对象,有一种方法可以将它转换为整数或字符串,因为我有一个函数,它接受一个整数,我想在那里传递搜索字。
答案 0 :(得分:0)
您可以申请isdigit()支票:
searchword = request.args.get('box', '')
if searchword.isdigit():
my_function(int(searchword))
或者,只是"ask for forgiveness":
EAFP
比获得许可更容易请求宽恕。这个常见的Python 编码风格假定存在有效的键或属性 如果假设被证明是假的,则捕获异常。这干净又快 风格的特点是存在许多尝试和除外 语句。
searchword = request.args.get('box', '')
try:
my_function(int(searchword))
except ValueError:
pass
希望有所帮助。
答案 1 :(得分:0)
只需构建一个简单的应用程序,您就可以得到答案。
from flask import request, Flask
app = Flask(__name__)
@app.route('/', methods=['POST', 'GET'])
def home():
key = request.args.get('key', '')
return 'key is `%s`, type(key) is %s\n' % (key, type(key))
if __name__ == '__main__':
app.run()
现在运行它。
$ wget -qO - 'http://localhost:5000/?key=value'
key is `value`, type(key) is <type 'unicode'>
如果你想将它转换为整数,你肯定想要某种回退。因此,结合其他答案,你可以做这样的事情
return 'key is `%s`, type(key) is %s, key.isdigit() is %s\n' % (
key, type(key), key.isdigit())
试试这个:
$ wget -qO - 'http://localhost:5000/?key=value'
key is `value`, type(key) is <type 'unicode'>, key.isdigit() is False
$ wget -qO - 'http://localhost:5000/?key=123'
key is `123`, type(key) is <type 'unicode'>, key.isdigit() is True
然后,您可以使用适当的方法来处理您的成功和失败情况,并使用int(value)
将value
投射到int
。