GET属性的数据类型

时间:2014-03-26 03:04:43

标签: python flask

我正在阅读[链接] 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的数据类型是什么,它是一个对象。如果它是一个对象,有一种方法可以将它转换为整数或字符串,因为我有一个函数,它接受一个整数,我想在那里传递搜索字。

2 个答案:

答案 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