如何在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,但我没有理解那里的例子。
答案 0 :(得分:1)
在您的情况下,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
。