2016-04-25 89 views
4

我很好奇,如果有人已經想出了一個很好的解決方案,在燒瓶中傳遞未知的URL參數。我認爲必須有一個簡單的解決方案,我只是完全置之不理。任何幫助表示讚賞。燒瓶通過未知的URL在url_for和重定向的參數

比方說,我有www.example.com?foo=baz&bar=buzz

@app.route('/') 
def index(): 
    foo = request.args.get('foo',None) 
    bar = request.args.get('bar',None) 
    return redirect(url_for('args', foo=foo, bar=bar, _external=True)) 

我似乎無法找出是沿着任何未知參數傳遞一個很好的方式。如果我有www.example.com?foo=baz&bar=buzz&bing=bangwww.example.com?this=that來到相同的路線我需要得到any/and所有參數傳遞到下一個視圖。

+1

也許通過像'**要求.args'(未經測試),即將request.args multidict作爲關鍵字參數傳遞。 –

+0

謝謝@Jérôme! Test Args 似乎工作! – Joshraz

+0

太好了。我用更好的解釋詳細解釋了答案。 –

回答

3

request.argsMultiDict

MultiDict是一個字典子類,用於處理同一個鍵的多個值,例如用於包裝器中的解析函數。這是必要的,因爲一些HTML表單元素爲同一個鍵傳遞多個值。

MultiDict實現了所有的標準字典方法。在內部,它將鍵的所有值保存爲列表,但標準字典訪問方法將只返回鍵的第一個值。

假設你不介意的多重價值的問題,你可以使用雙*符號使用它作爲任何字典和把它作爲關鍵字參數:

url_for('test', _external=True, **request.args)