Bitte bare mit mir für die Neuigkeit in diesem. Ich versuche, eine Datenbank über meine Website abzufragen und Spalten mit den Ergebnissen mithilfe von Jinja-Vorlagen dynamisch hinzuzufügen. Ich bin mit Kolben und auf meine Ansichten Funktion, die ich bin Rendern der Werte wie dieseRender_template zweite Zeit nach der Seite ist bereits geladen
return render_template('query.html',my_list=my_list)
Die Sache ist die, dass, wenn ich die Seite laden, der Benutzer die Datenbank noch Abfrage hat, so my_list leer ist. Der Benutzer fragt die Datenbank ab, indem er einen Knopf auf der HTML-Seite drückt und eine AJAX-Anfrage durch jQuery macht. Meine Frage ist jetzt, ob es möglich ist, my_list unter Verwendung von jinja Templates zurückzugeben, auch nachdem die Seite bereits geladen wurde, was bedeutet, dass ich render_template ein zweites Mal zurückgeben muss (nach dem Senden), um die Werte für my_list zu erhalten. Ich bevorzuge es, json Parsing zu verwenden. Vielen Dank im Voraus!
Hier ist ein Beispielcode. Ich frage die Datenbank mit den Werten der IntranetID der Spalte SubmitterID und der Plattform der Spalte Plattformen ab, um den gesamten Eintrag mit den Werten der übrigen Spalten in die Datenbank zurückzugeben.
@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)
und auf meine HTML-Seite
{% for n in my_list %}
<li>{{n}}</li>
{% endfor %}
auf der Javascript-Datei, wenn Sie die Taste i die Ajax-Anforderung wie diese eine völlig getrennte Anfrage
$("#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
}
});
});
Sie müssen die Anforderungsmethode nicht überprüfen. Flask leitet nur GET- und POST-Anfragen an diesen Endpunkt weiter. – dirn