2016-11-21 82 views
0

我試圖將json對象傳遞給url_for,但它作爲查詢參數傳遞(附加到URL)而不是作爲參數傳遞給函數,因此獲得'缺少位置參數'錯誤。在Python 3.5上使用Flask。Flask:Url_for參數作爲查詢參數傳遞

任何幫助表示讚賞。謝謝!

我的代碼:

##VIEWS.PY 
@projects.route('/exportdata', methods=['GET','POST']) 
def exportdata(export): 
    return Response(export, 
      mimetype='application/json', 
      headers={'Content-Disposition': 'attachment;filename=export.json'}) 

<!-- HTML--> 
<p> Download data <a href="{{ url_for('projects.exportdata', export=export) }}">here </a></p> 

Error

回答

0

你必須申報出口在路線的參數。

import json 

from flask import jsonify 

##VIEWS.PY 
@projects.route('/exportdata/<export>', methods=['GET','POST']) 
def exportdata(export): 
    return jsonify(**json.loads(export)) 
+0

謝謝。當我現在嘗試時,我得到一個'未找到'的錯誤,整個JSON內容仍然在URL欄中。我想查看json或下載它。 – ConstantinL

+0

你可以試試我剛編輯過的更新後的答案嗎?謝謝。 –

+0

另外,在我的那傳遞JSON到url_for()像那樣總是會發送JSON作爲查詢參數,並且它將始終在URL中可見。如果您不想這樣做,我建議要麼生成JSON在exportdata()路由本身中,或使用HTTP的POST方法。爲此,您需要一個帶有隱藏輸入字段的HTML

,並將替換爲。 –