2017-07-10 12 views
0

Ich habe die folgende Kolben-Anwendung, die ein Dashboard mit verschiedenen Tasten anzeigt. Jeder Button führt eine Python-Funktion aus. Nach der Ausführung einer solchen Funktion möchte ich, dass die Anwendung zum Dashboard zurückkehrt. Um dem Benutzer ein einfaches Protokoll zu geben, möchte ich eine Zeichenfolge auf der HTML-Seite ausgeben. Für diesen Gedanken über eine Markierung oberhalb der Schaltflächen im Dashboard, die mit dem jeweiligen Wert gefüllt werden. Wie kann ich das machen?Wie behandelt man eine Variable in HTML?

Flask:

from flask import Flask, render_template 
app = Flask(__name__) 
@app.route("/") 
def main(): 
    return render_template('index.html') 

@app.route('/something') 
def do_something(): 
    print("Hello") 
    return render_template('index.html', user="Successfully executed!") 

if __name__ == "__main__": 
    app.run() 

HTML:

<!DOCTYPE html> 
<html> 
<head> 
    <head> 
    <meta charset="UTF-8"> 
    </head> 
    <title>MP Reporting</title> 
</head> 
<body> 
    <div value=user></div> 
    <a href="./something">Your button</a> 
</body> 
</html> 
+0

Was ist das Problem mit dem aktuellen Szenario? Siehst du irgendeinen Fehler? –

+1

Sie haben eine Vorlage. Rendering Variablen ist was sie tun. Haben Sie die Jinja2-Dokumentation gelesen? –

Antwort

1

Für Kolben-Vorlage verwenden „{{kwarg}}“, dh in Ihrem Beispiel

<div>{{user}}</div> 

als

<div>Successfully executed!</div> 
1

können Sie Variablen drucken Jinja2 verwenden. Zum Ausdrucken der variable user in Ihrem Beispiel

{{ user }} in der HTML-Vorlage hinzufügen.

Wenn Sie eine Liste der Elemente zu den HTML-Code senden Sie ausgeben können ein einfaches unter Verwendung für:

{% for item in items %} 
{{ item }} 
{% endfor %} 
+0

Aber ich belasse die Python-Funktion so wie sie ist? – user3080315

+0

@ user3080315 Ja, Sie senden Variablen an die Vorlage, indem Sie sie definieren, wie Sie es getan haben, und dann können Sie sie in der HTML mit jinja2 verwenden – kemis

+0

@ user3080315 hoffe das half :) – kemis

1

Neben anderen Antworten machen, schlage ich vor, Flask-interne Meldung blinkt mit der i s einfacher und übersichtlicher, anstatt Variablen manuell an render_template zu übergeben. Es ist einfach:

(Template)

{% with messages = get_flashed_messages() %} 
    {% if messages %} 
     {% for message in messages %} 
     <div>{{ message }}</div> 
     {% endfor %} 
    {% endif %} 
{% endwith %} 

(Kolben Ansicht)

from flask import flash 

flash("Successfully executed!") 

Sie mehr Informationen von here erhalten können.

Verwandte Themen