为什么 request.args returns 空 ImmutableMultiDict?

Why request.args returns empty ImmutableMultiDict?

我正在尝试获取从 url_for() 函数传递的参数。但它一直向我返回一个空的 ImmutableMultiDict。下面是我的代码。

hosts.html

<p>
  <a href="{{ url_for('svc_instance_deploy',
                       service_id=service_id,
                       host_id=host_id) }}">
  <span class="label label-success">Install Software</span>
  </a>
</p>

view.py

@app.route('/deploy/<service_id>', methods=['GET', 'POST'])
@app.route('/deploy/<service_id>/<host_id>/', methods=['GET', 'POST'])
@login_required
def svc_instance_deploy(service_id, host_id=0):
    print(request.args)

当点击hosts.html上的link时,浏览器端和服务器端都没有报错。除了它向我打印一个空的 ImmutableMultiDict。

为什么我无法获取 url_for() 函数传递的参数?我怎么能那样做?提前致谢。

我解决了这个问题。

原来我使用了错误的 property of Request 对象。当我们在视图函数中获取参数时,我们应该使用request.view_args而不是request.args