如何使用烧瓶

时间:2017-05-11 07:26:22

标签: python url flask

如何在Flask中创建一个类似于以下内容的网址:

localhost/something/info?userID=123&itemID=456

我对如何生成信息感到沮丧?userID = 123& itemID = 456 part。

是吗:

@app.route('something/info<userID>&<itemID>/')
do_something(userID, itemID):
    return

我已经看过&#34;下一个&#34;正在使用。但是找不到任何好的例子。

修改

我看了另一个question,但我没有理解那里的例子。

1 个答案:

答案 0 :(得分:1)

在您的情况下,userIDitemIDGET参数,但不是路线的一部分。

Flask请求有view_args(将用作查看参数)和args(其他参数不会设置为查看功能,但您可以使用它们。)

这是一个可以解释它是如何工作的例子。

@app.route('/<string:route_arg>/')
def route(route_arg):
    message = [
        # route_arg - part of route and argument of our view function
        'route_arg = %s ' % route_arg,
        # we can get route_arg from request
        'route_arg from request = %s ' % request.view_args.get('route_arg'),
        # request.args - parameters after '?' in url
        'userID = %s' % request.args.get('userID'),
        'itemID = %s' % request.args.get('itemID'),
        # example of url
        'url with args = %s' % url_for('route', route_arg='info', userID=123, itemID=456)
    ]
    return '<br/>'.join(message)

让我们打开/info/您将看到下一个结果:

route_arg = info # because is part of route and argument
route_arg from request = info 
# because we didn't set parameters
userID = None 
itemID = None
url with args = /info/?itemID=456&userID=123

让我们打开/info/?itemID=456&userID=123

route_arg = info 
route_arg from request = info 
# not part of route, but part of request string(?itemID=456&userID=123)
userID = 123
itemID = 456
url with args = /info/?itemID=456&userID=123

因此,在您的情况下,参数不会用作查看参数。您应该使用request.args

与他们合作