2016-11-21 7 views
0

jsonオブジェクトをurl_forに渡そうとしていますが、関数の引数として渡される代わりにクエリパラメータ(URLに追加)として渡されます。 a '存在しない位置引数'エラー。 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が必要で、に置き換える必要があります。 –

関連する問題