在您的情况下,userID 和 itemID 是 GET 参数,但不是路由的一部分。
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 与他们合作。