2017-02-07 8 views
2

データサーバー側の保存方法がわかりません。ここに私のルートがあります:フラスコ、フォームからjsonファイルにデータを保存

@app.route('/results', methods=['GET', 'POST']) 
@login_required 
def results(): 
    if request.method == 'POST': 
     results = request.form 
     return json.dumps(request.form) 

私はリクエストフォームを辞書から文字列に変換します。

<form action = "/results" method = "POST"> 
       <input type="text" placeholder="Host" name="host" value="host"> 
       <input type="text" placeholder="Longname" name="longname" value="longname"> 
       <input type="text" placeholder="Shortname" name="shortname" value="shortname"> 
       <p><input class="btn btn-primary" type="submit" value="send"></p> 

フォームをJSONに変換できるかどうかを確認するための結果ページを作成しました。 しかし、今私は立ち往生しています、結果をファイルに保存する方法がわかりません。あなたはdumpsように動作しますdump方法があることがわかりますあなたread the documentation JSONモジュールの場合

{hosts ["host": "a", "shortname": "c", "longname": "b"], ["host": "a", "shortname": "c", "longname": "b"]} 
+1

フォームをサーバーに保存するか、ユーザー/クライアントのダウンロードとして提供しますか? –

答えて

3

:私はフォームを投稿するたびに、私は戻って、このようなものを取得します。あなたは同様にそれにファイルオブジェクトを供給する必要があります。

with open('file.json', 'w') as f: 
     json.dump(request.form, f) 
    return render_html('your_template.html') 

file.jsonに自分のフォームを書き込むこと。あなたはおそらく、あなたが保存しようとしているファイルへの完全なパスを格納するためにフラスコの設定で何かを設定したいと思うでしょう。

+0

@ T1ber1usこれがあなたの問題を解決するなら、必要な唯一の感謝は左側のチェックマークを押すことです。 –

関連する問題