2017-04-20 5 views
0

ページリフレッシュ後に滞在するように選択された選択オプションを取得しようとしていますが、Jinga2を使用しようとしました。FlaskでPOST後に選択オプションが選択されたままになっています

可変エネルギーが入力され、Pythonで渡されます。これを調べた後、私はFlaskでこの作業を行う方法/構文であると感じていますが、明らかにそうではありません。どんな援助もありがとう!

編集: のPython /フラスコ

@app,route('/things', methods=['POST'] 
def things() 
    if len(facts['thing']) > 11: 
     energy = [facts['thing'][0:8],facts['thing'][9:]] 
    else: 
     energy = [facts['things']] 
.... 
return render_template('thing.html, thing=thing) 
+0

ここにあなたのサーバーサイドフローコードの例を掲載できますか?あなたが "リフレッシュ"と言うとき、私はそれがGETリクエストを送るべきであるページをリフレッシュするだけであることを意味します。フォームを使って情報をポストしないので、変数をどのように保存しているのか分かりません。 –

+0

私は、POSTが発生したときに意味するように、リフレッシュという言葉を使用するよりも間違いました。私はPython/Flaskでこの質問を編集し、その変数を保存してどのように戻しているのですか? – MVS

答えて

0

それはあなたが何をしようとしての作品として、この例を参照してください。私はあなたのコードに間違っていることを正確にデバッグすることはできません。あなたが私に部品を提供し、彼らが何をしているのか分からないからです。

フォルダ構造

Test 
|___templates 
| |___things.html 
|___Test.py 

things.html

<form method="post"> 
    <div class="col-sm-4 col-lg-4 col-md-4"> 
     <select title="thing" class="form-control" id="myselect" name="thing" required> 
      <option value="" {% if thing=='' %} selected {% endif %} ></option> 
      <option value="Foo" name="Foo" id="Foo" {% if thing =="Foo" %} selected {% endif %} >Foo</option> 
      <option value="Bar" name="Bar" id="Bar" {% if thing =='Bar' %} selected {% endif %}>Bar</option> 
     </select> 
     <button type="submit">SEND</button> 
    </div> 
</form> 

Test.py

from flask import Flask, render_template, request 

app = Flask(__name__) 
PORT = 5000 


@app.route('/things', methods=['GET', 'POST']) 
def things(): 
    """ 
    Accepts both GET and POST requests. If it's a GET request, 
    you wouldn't have a last selected thing, so it's set to an 
    empty string. If it's a POST request, we fetch the selected 
    thing and return the same template with the pre-selected 
    thing. 
    You can improve on this and save the last selected thing 
    into the session data and attempt to retrieve it from there. 
    """ 
    thing = '' 
    if request.method == 'GET': 
     return render_template('things.html', thing=thing) 
    else: 
     thing = request.form.get('thing', '') 
     return render_template('things.html', thing=thing) 


if __name__ == '__main__': 
    app.run(port=PORT) 
0

あなたが持っている場合は、これを試してくださいまだではありません

{% if thing == "Foo" %} 
    <option value = "Foo" name ="Foo" id="Foo" selected>Foo</option> 
    <option value = "Bar" name ="Bar" id="Bar">Bar</option> 
{% elif thing == "Bar" %} 
    <option value = "Foo" name ="Foo" id="Foo">Foo</option> 
    <option value = "Bar" name ="Bar" id="Bar" selected>Bar</option> 
{% endif %} 
関連する問題