2017-06-29 20 views
0

views.pyの関数で計算された値の表示に問題があります。現在、私のコードは基本的に次のように機能しています。 views.pyでは、基本的にはFlaskのviews.pyからtemplate htmlへの値の受け渡し

if first form is submitted: 
    generate a value games 
    return render_template('base.html', games=games) 
elif second form is submitted: 
    generate a value games 
    return render_template('base.html', games=games) 
return render_template('login.html', firstform=firstform, secondform=secondform) 

として扱います。login.htmlは、base.htmlを拡張するテンプレートです。 base.htmlには、

{% if games %} 
    <h1> {{ games }} </h1> 
{% endif %} 

があります。考えられるのは、views.pyで計算されたゲームの価値が表示されるということです。ただし、フォームを送信すると、値は表示されません。私がどこに間違っているかもしれないかについてのあらゆる考え?

+0

あなたのページの正確な出力は何ですか?それは最初の場所で 'ifゲーム'の条件に当たっていますか? – PYA

+0

はまったくありません。フォームが全く提出されていないかのように、表示される値を生成するコードを見ることができるからです。私はそれがすべてのhtmlがうまく実行されるので、それがifゲーム条件に当たると仮定します。 –

+0

別の簡単な 'html'ページを作り、正しい出力を得られるかどうかを確認してください。 – PYA

答えて

0

おそらく2つの異なるルートが必要になります.1つはフォームごとにPOSTデータを送信するルートです。たとえば、

@app.route("/my/app/form1", methods=["POST"]) 
def handle_form1_submit(): 
    ... 

@app.route("/my/app/form2", methods=["POST"]) 
def handle_form2_submit(): 
    ... 

次に、それぞれのフォームのaction=""属性を変更します。

さらに良い方法は、ページを動的にルーティングして更新するpost、ajaxの代わりに1つのルートを持つことです。

+0

2番目のアプローチは間違いなく私が望むものですが、私はajaxの経験がないのです。これを行うための参照はありますか? –

+0

ajax(here)(https://www.w3schools.com/xml/ajax_intro.asp)と[ここ](https://www.w3schools.com/jquery/jquery_ref_ajax.asp)の学習に少し時間をかけてみてください。 )。この種のものを学ぶためのオンラインリソースがたくさんあります。 – darksky

関連する問題