2017-07-10 16 views
0

私は、さまざまなボタンのダッシュボードを表示する次のフラスコアプリケーションを持っています。各ボタンはPython関数を実行します。このような関数の実行後、私はアプリケーションをダッシュ​​ボードに戻したい。ユーザーにシンプルなログを与えるために、htmlページに文字列を出力したい。その考えのために、それぞれの値で満たされるダッシュボード上のボタンの上のタグについて考えてください。どうやってやるの?HTMLで変数を扱う方法は?

フラスコ:

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

現在のシナリオにはどのような問題がありますか?何かエラーが見えますか? –

+1

テンプレートがあります。レンダリング変数は、それらが行うことです。 Jinja2のドキュメントを読んだことがありますか? –

答えて

1

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

他の回答に加えて

<div>Successfully executed!</div> 
1

あなたはJinja2を使用して変数を印刷することができます。あなたの例では、変数userプリントアウトする は、HTMLテンプレートに

{{ user }}を追加します。

あなたがのために、簡単なを使用して出力してできるHTMLに項目のリストを送信する場合:フラスコテンプレートの使用あなたの例では、「{{kwarg}}」IE用

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

しかし、私はそのままPythonの機能を残していますか? – user3080315

+0

@ user3080315はい、テンプレートに変数を指定して送信してから、htmlで使用することができます。 – kemis

+0

@ user3080315これが役に立ちました:) – kemis

1

としてレンダリングされます、私は私フラスコに内蔵されているメッセージの点滅を使用することをお勧めレンダリングを手動で行うのではなく、もっと簡単にすることができます。それはそのように簡単です:

(テンプレート)

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

(フラスコビュー)

from flask import flash 

flash("Successfully executed!") 

あなたはhereからより多くの情報を得ることができます。

関連する問題