【问题标题】:How to create dynamic url with = and questionmarks in flask如何在烧瓶中使用 = 和问号创建动态 url
【发布时间】:2023-03-22 08:49:01
【问题描述】:

如何在 Flask 中创建一个如下所示的 url:

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

我很想知道如何生成 info?userID=123&itemID=456 部分。

是吗:

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

而且我看到了一些关于“下一个”被使用的东西。但是找不到任何好的例子。

编辑

我看了另一个question,但我不明白那里的例子。

【问题讨论】:

标签: python url flask


【解决方案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&amp;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 与他们合作。

【讨论】:

  • 谢谢!正是我需要的。我设法用你的例子弄明白了!
  • @FluffPeg 我很高兴能提供帮助。祝你好运;)
猜你喜欢
  • 1970-01-01
  • 2021-12-04
  • 2022-11-03
  • 1970-01-01
  • 2020-04-20
  • 1970-01-01
  • 2019-08-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多