これで新しくなってくれてありがとうございます。 私は自分のウェブサイトからデータベースを照会し、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
}
});
});
リクエスト方法を確認する必要はありません。 Flaskは、そのエンドポイントにのみGETリクエストとPOSTリクエストをルーティングします。 – dirn