2016-03-24 17 views
0

これで新しくなってくれてありがとうございます。 私は自分のウェブサイトからデータベースを照会し、Jinjaテンプレートを使用して結果を列に動的に追加しようとしています。私はフラスコを使用していますし、私の意見は 機能に私はこのページが既にロードされた後の2回目のRender_template

return render_template('query.html',my_list=my_list)

ことのように値をレンダリングしています、私はページをロードするときに、ユーザーが空であるので、my_listという、まだデータベースを照会していないということです。ユーザーは、htmlページ上のボタンを押して、jqueryを通じてajaxリクエストを行うことによって、データベースに問い合わせます。私の質問は、ページがすでにロードされた後でも、jinjaテンプレートを使用してmy_listを返すことができるかどうかです。つまり、my_listの値を取得するためにrender_templateをもう一度返す必要があります(サブミットボタンの後)。

p.s.私はjsonの解析を使用しないことを好む。 ありがとうございます!

ここはサンプルコードです。私は、列SubmitterIDのintranetIDの値とプラットフォームPlatformsのプラットフォームをデータベースに照会して、残りの列の値も含めてデータベース全体を戻します。

@app.route('/querydbvalues',methods=['POST', 'GET']) 
def querydbvalues(): 
    if request.method == 'POST' or request.method == 'GET': 
    results = models.mydatabase.query.filter_by(SubmitterID=qIntranetID,Platforms=qPlatform).all() 
    my_list = [i.user for i in results] 
    return render_template('query.html',my_list=my_list) 

と私のhtmlページの

{% for n in my_list %} 
<li>{{n}}</li> 
{% endfor %} 

のJavascriptファイル上のあなたは私がこの

$("#SearchDatabase").click(function(){ 
    var tmp = document.getElementById("qIntranetID").value; 
    var tmp2 = document.getElementById("qPlatform").value; 
    jQuery.ajax({ 
     dataType: "json", 
     url:"/querydbvalues", //tell the script where to send requests 
     data:{text:tmp,text2:tmp2}, 
     type:'GET', 
     contentType: 'application/json', 
     success: function(results){ 
      //do something 
     } 
    }); 
}); 
+0

リクエスト方法を確認する必要はありません。 Flaskは、そのエンドポイントにのみGETリクエストとPOSTリクエストをルーティングします。 – dirn

答えて

0

のようなAJAXリクエストがAjax呼び出しが完全に別の要求であることを確認ボタンを押したとき。レンダリングテンプレートを含め、そのリクエストに必要なものを行うことができます。

+0

こんにちは、ありがとう、あなたの入力。しかし、私の問題は、私は同じHTMLページ上で "my_list"をリフレッシュせずに、あるいは別のページに変えずにレンダリングしたいということです。そして何らかの理由で私はなぜそれは私が助けを求めていることを傾けるものではない – PetrosM

+0

それはまさにAjaxのことです。おそらく、何らかの理由で私ができないと言っているのではなく、同じページをレンダリングするのに問題がある理由を説明してください。 –

+0

同じページのレンダリングに問題はありません。私は "my_list"(htmlページの後に2番目の引数を表示)の値をレンダリングする際に問題があり、私のWebページでjinjaテンプレートでこれらの値を使用しています。 – PetrosM

関連する問題